복붙노트

[HADOOP] Hadoop에서 노드를 올바르게 제거하려면 어떻게해야합니까?

HADOOP

Hadoop에서 노드를 올바르게 제거하려면 어떻게해야합니까?

저는 10 대가 넘는 컴퓨터가있는 클러스터에서 Hadoop 1.1.2를 실행하고 있습니다. HDFS와 MapReduce 모두 위아래로 확장이 가능합니다. "멋지게"말하자면, 데이터가 손실되지 않도록 (HDFS 노드가 분해되도록), 작업을 실행하는 노드가 종료되기 전에 끝내야한다는 의미입니다.

나는 분해가 완료되면 데이터 노드 프로세스가 죽는 것을 보았습니다. 이것은 노드를 제거하기 위해 수행하는 작업입니다.

노드를 다시 추가하려면 (위와 같이 제거되었다고 가정), 이것이 내가하는 일입니다.

이것이 "멋지게"위아래로 확장하는 올바른 방법입니까? 축소 될 때, 특정 재수없는 작업 (제거 된 노드에서 실행중인 작업을 다시 스케줄해야하기 때문에)에서 작업 기간이 급격히 증가한다는 것을 눈치 챘습니다.

해결법

  1. ==============================

    1.이전에 dfs 제외 파일을 설정하지 않은 경우, 1-3을 수행하십시오. 4 시부 터 시작하십시오.

    이전에 dfs 제외 파일을 설정하지 않은 경우, 1-3을 수행하십시오. 4 시부 터 시작하십시오.

    노드를 datanode 및 tasktracker로 추가하려면 Hadoop FAQ 페이지를 참조하십시오.

    편집 : 라이브 노드가 클러스터에서 제거 될 때 작업은 어떻게됩니까?

    커미션을 해제 할 노드에서 실행중인 작업은 해당 노드에서 예약 된 작업의 작업이 KILLED_UNCLEAN (맵핑 및 축소 작업의 경우) 또는 KILLED (작업 설정 및 정리 작업의 경우)로 표시되므로 영향을받습니다. 자세한 내용은 JobTracker.java의 4633 줄을 참조하십시오. 해당 작업에 실패하면 작업에 대한 알림이 전송됩니다. 대부분의 경우 작업 추적기가 실행 일정을 재 지정합니다. 그러나 여러 번 반복 된 실패 후에는 전체 작업이 실패하거나 성공할 수 있습니다. JobInProgress.java에서 2957 라인을 참조하십시오.

  2. ==============================

    2.Hadoop의 성능이 우수하기 때문에 데이터를 여러 복사본으로 사용할 수 있기를 바랍니다. 노드를 제거하면 데이터를 최적으로 사용할 수있는 기회가 제거되고 가용성을 보장하기 위해 클러스터에 추가적인 스트레스를 가하게됩니다.

    Hadoop의 성능이 우수하기 때문에 데이터를 여러 복사본으로 사용할 수 있기를 바랍니다. 노드를 제거하면 데이터를 최적으로 사용할 수있는 기회가 제거되고 가용성을 보장하기 위해 클러스터에 추가적인 스트레스를 가하게됩니다.

    나. 노드를 쓰러 뜨리면 모든 데이터의 여분 복사본이 다른 곳에 만들어지게됩니다. 따라서 기본 구성보다 다른 데이터 관리 패러다임을 사용하지 않는 한 (클러스터에 3 개의 복사본 유지) 재미를 위해이 작업을 수행하지 않아야합니다.

    그리고 Hadoop 클러스터가 잘 작동하려면 실제로 데이터를 클러스터에 저장해야합니다. 그렇지 않으면 데이터가 아직 없기 때문에 계산을 데이터로 옮길 수 없습니다. Hadoop은 네트워크를 통해 데이터를 보내기 전에 계산을 수행 할 수있는 "스마트 드라이브"를 많이 가지고 있습니다.

    따라서 이것을 합리적인 것으로 만들기 위해서는 클러스터를 어떻게 든 분할해야합니다. 하나의 노드 집합에 원본 데이터의 3 개의 마스터 복사본을 보관하고 중간 데이터를 저장하고 해당 부분에 대한 계산을 수행하는 데 사용되는 "추가 기능"노드가 있어야합니다. 마스터 노드를 변경하지 마십시오. 따라서 데이터를 재배포 할 필요가 없습니다. 애드온 노드가 비어있는 경우에만 종료하십시오. 하지만 아직 구현되지 않았습니다.

  3. ==============================

    3.처리가 진행되는 동안 임시 또는 준비 파일은 자동으로 정리됩니다. 이 파일은 지금 누락되어 있으며 hadoop은 어떻게 사라 졌는지 인식하지 못합니다. 따라서 실제 사용 해제가 다른 모든 파일에 대해 수행 되더라도 해체 프로세스는 해결 될 때까지 대기합니다.

    처리가 진행되는 동안 임시 또는 준비 파일은 자동으로 정리됩니다. 이 파일은 지금 누락되어 있으며 hadoop은 어떻게 사라 졌는지 인식하지 못합니다. 따라서 실제 사용 해제가 다른 모든 파일에 대해 수행 되더라도 해체 프로세스는 해결 될 때까지 대기합니다.

    Hadoop GUI에서 - 매개 변수 "Under-Replicated Blocks"가 시간이 지나도 거의 일정하지 않다는 것을 알게되면 그럴 가능성이 높습니다.

    아래의 명령을 사용하여 파일을 나열하십시오.

    hadoop fsck / -files -blocks -racks

    해당 파일이 일시적이고 필요하지 않은 경우 해당 파일 또는 폴더를 삭제하십시오.

    예 : hadoop fs -rmr /var/local/hadoop/hadoop/.staging/* (여기서 올바른 경로를 지정하십시오)

    그러면 문제가 즉시 해결됩니다. De-Commissioned 노드는 5 분 안에 Dead Nodes로 이동합니다.

  4. from https://stackoverflow.com/questions/16774439/how-do-i-correctly-remove-nodes-in-hadoop by cc-by-sa and MIT license