2012-10-31 3 views
12

나는 Cloudera와 놀았으며 일을 시작하기 전에 클러스터 수를 정의한 다음 cloudera 관리자를 사용하여 모든 것이 실행되고 있는지 확인합니다.실행중인 Hadoop 클러스터에 노드를 추가하는 방법이 있습니까?

나는 hadoop을 사용하는 대신 메시지 큐를 사용하여 작업을 배포하지만 작업 결과는 HBase에 저장된다는 새로운 프로젝트를 진행하고 있습니다. 작업을 처리하고 Hbase에 저장하기 위해 10 대의 서버를 시작할 수도 있지만 나중에 더 많은 작업자 노드를 추가하기로 결정하면 (읽기 : 프로그래밍 가능) 실행중인 클러스터에 자동으로 연결하여 로컬로 추가 할 수 있는지 궁금합니다. 클러스터 HBase/HDFS에?

이것이 가능하며이를 수행하기 위해 무엇을 배워야합니까?

답변

9

노드를 Hadoop에 추가하고 HBase에 노드를 추가하는 방법은 다음과 같습니다. 문서를 보면 클러스터를 다시 시작할 필요가 없습니다. 노드를 동적으로 추가 할 수 있습니다.

+1

모든 노드 또는 NameNode에서만 슬레이브 파일을 업데이트해야합니까? – Tariq

+0

모든 노드에서/etc/hosts 파일을 업데이트해야합니까, 아니면 NameNodes에만 해당합니까? – Tariq

0

정확하게 이해하면 HBase에 연결하여 데이터를 저장하는 작업자가 직접 조정할 수 있습니다. 필요한만큼 많은 것을 가질 수 있으며 추가 된대로 (Zookeeper 쿼럼을 볼 수있는 한) Hbase에 연결할 수 있습니다.

하둡 클러스터를 늘리는 것에 대해 이야기하고 있다면. 이미 Cloudera를 사용하고 있으므로 cloudera Manager REST API 또는 Java client someone implemented for it

1

을 통해 수행 할 수 있습니다. 다음 단계는 실행중인 클러스터에 새 노드를 시작하는 데 도움이됩니다.

1> Update the /etc/hadoop/conf/slaves list with the new node-name 
2> Sync the full configuration /etc/hadoop/conf to the new datanode from the Namenode. If the file system isn't shared. 
2> Restart all the hadoop services on Namenode/Tasktracker and all the services on the new Datanode. 
3> Verify the new datanode from the browser http://namenode:50070 
4> Run the balancer script to readjust the data between the nodes. 

새 노드를 추가 할 때 NN에서 서비스를 다시 시작하지 않으려는 경우. 슬레이브 구성 파일에 이름을 추가하는 것이 좋습니다. 그래서 그들은 사용 가능할 때까지 폐로/사각 노드로보고합니다. 위의 DataNode 다음 단계 만 수행하십시오. 다시 이것은 최선의 방법이 아닙니다.

+0

답장을 보내 주셔서 감사합니다. 2.5.2에 conf 폴더가 없으므로 Hadoop 2.5.2에서 답변을 업데이트 해 주실 수 있습니까? – Tariq

0

hadoop 클러스터를 다시 시작하지 않고도 완료 할 수 있습니다. 이 document에 따라 includes 파일에 노드를 추가하고 hdfs-site.xml 및 mapred-site.xml 파일을 일부 변경하면이 작업을 수행 할 수 있습니다. 자세한 지침은에서 제공됩니다 this document