1

Hadoop のクレイジーなデータ分散と管理が原因で、奇妙な問題に直面しています。非 DFS の使用により、データ ノードの 1 つまたは 2 つが完全にいっぱいになりましたが、他のノードはほとんど空です。非 DFS の使用をより均一にする方法はありますか? [すでに dfs.datanode.du.reserved を使用してみましたが、どちらも役に立ちません]

問題の例:それぞれ 10 GB のスペースを持つ 16 個のデータ ノードがあります。最初は、各ノードには約があります。7 GB の空き容量。5 GB のデータを処理するジョブ (レプリケーション ファクター = 1) を開始すると、ジョブが正常に完了することを期待しています。しかし悲しいかな!ジョブの実行を監視すると、非 DFS の使用量が約 6 ~ 7 GB であるため、突然 1 つのノードのスペースが不足し、再試行すると別のノードのスペースが不足することがわかります。探しているパフォーマンス メトリックが得られないため、再試行回数を増やしたくありません。

どうすればこの問題を解決できますか。

4

2 に答える 2

2

入力が適切に分割されていないようです。別の InputFormat を選択するか、独自のデータ セットを作成することをお勧めします。また、すべてのノードが NameNode の slaves ファイルにリストされていることを確認してください。
もう 1 つの問題は、深刻なデータ スキューである可能性があります。これは、データの大部分が 1 つのレデューサーに送信される場合です。それを解決するには、独自のパーティショナーを作成する必要がある場合があります。

于 2012-09-12T20:46:57.330 に答える
0

私の知る限り、dfs以外の使用を制限することはできません。どの正確な入力ファイル(またはその分割)が問題を引き起こしているのかを特定することをお勧めします。そうすれば、おそらく解決策を見つけることができるでしょう。
Hadoop MRは、RAMやディスクスペースなどの単一ノードリソースを使用して単一分割処理を実行できることを前提として構築されています。

于 2012-09-12T21:39:45.417 に答える