4 つのノードを持つ完全分散型 Hadoop クラスターがあります。Jobtracker にジョブを送信すると、12 個のマップ タスクが自分のジョブにとって適切であると判断されますが、何か奇妙なことが起こります。クラスター全体。質問する前に、私はすでに以下のことを行っています。
- 別のジョブを試す
- start-balance.sh を実行してクラスターを再調整します
しかし、うまくいかないので、誰かが理由と修正方法を教えてくれることを願っています.
入力データ ファイルのすべてのブロックがそのノードにある場合、スケジューラは同じノードを優先します。
入力がどのように分割されているかを確認してください。入力分割は 1 つしかない場合があります。つまり、データの処理に使用されるノードは 1 つだけです。ステムにさらに入力ファイルを追加し、それらを異なるノードに配置して、どのノードが作業を行っているかを確認することで、これをテストできます。
それでもうまくいかない場合は、クラスターが正しく構成されていることを確認してください。具体的には、名前ノードのファイルに他のノード セットへのパスが設定されてslaves
いること、および各スレーブ ノードのmasters
ファイルに名前ノード セットが設定されていることを確認します。
どうやら、ソース データ ファイルは 1 つのデータ ノードにあるようです。バランサーのせいではありません。私が見る限り、hdfs にはレプリケーションが 1 つしかないか、完全分散型 Hadoop クラスターに属していません。