web-dev-qa-db-ja.com

実行中のHadoopクラスターにノードを追加する方法はありますか?

私はClouderaで遊んでいて、ジョブを開始する前にクラスターの数を定義してから、clouderaマネージャーを使用してすべてが実行されていることを確認します。

私は、hadoopを使用する代わりにメッセージキューを使用して作業を配布する新しいプロジェクトに取り組んでいますが、作業の結果はHBaseに保存されます。ジョブを処理してHbaseに保存するために、10台のサーバーを起動する可能性がありますが、後でさらにいくつかのワーカーノードを追加することにした場合、ローカルで追加できるように、実行中のクラスターに自動的に接続するように簡単に(読み取り:プログラム可能)できますか? HBase/HDFSをクラスター化するには?

これは可能ですか?それを行うには何を学ぶ必要がありますか?

15
user1735075

Hadoop および HBase にノードを追加するためのドキュメントは次のとおりです。ドキュメントを見ると、クラスターを再起動する必要はありません。ノードは動的に追加できます。

13
Praveen Sripati

次の手順は、実行中のクラスターで新しいノードを起動するのに役立ちます。

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のみの手順に従います。繰り返しますが、これはベストプラクティスではありません。

1
Chakri

CDH 5.8.5(Hadoop 2.6)を使用したClouderaの回答を更新-

クラスターに新しいノードを追加するには、ClouderaManagerUIで次の手順に従います。

  1. クラスタ名をクリックします。
  2. ホストリストに移動します。
  3. ホストページが表示されたら、[新しいホストをクラスターに追加]をクリックします。
  4. ホストのIPを入力して検索します。
  5. 指示に従い続け、次の手順に進みます。
  6. 最後に、新しいノードに役割を割り当てます。たとえば、データノードの場合は、データノードに関連する役割のみを割り当てて続行します。
  7. 最後に、新しいノードがクラスターに追加されます。 [完了]をクリックします。
0
aksss

私があなたを正しく理解していれば、HBaseに接続してデータを保存する自分で調整するワーカーがいます。それらは必要な数だけ持つことができ、追加されたときにHbaseに接続できます(動物園の定足数を見ることができる限り)。

Hadoopクラスターの増加について話している場合。すでにClouderaを使用しているので、 cloudera Manager REST API または 誰かが実装したJavaクライアント

0

これは、Hadoopクラスターを再起動せずに実行できます。これに従って document 、includesファイルにノードを追加し、hdfs-site.xmlファイルとmapred-site.xmlファイルにいくつかの変更を加えることでこれを実現できます。詳細な手順は このドキュメント に記載されています。

0
Thanga