私はMapReduceについてここで読んでいました.最初の例は、ドキュメント内の各単語の出現回数を数えています. ドキュメント内の上位 20% の単語を取得したいと考えていましたが、どうすればそれを達成できるでしょうか? クラスタ内の各ノードはファイル全体を表示できず、1 つの単語のすべての出現箇所のリストだけを表示できるため、不自然に思えます。それを達成する方法はありますか?
質問する
185 次
1 に答える
0
はい、確かにこれを達成できます: Hadoop にレデューサーを 1 つだけ持たせることによって (ただし、このアプローチでは、分散コンピューティング自体の利点が失われます)。
これは次のように行うことができます。
// Configuring mapred to have just one reducer
conf.setInt("mapred.tasktracker.reduce.tasks.maximum", 1);
conf.setInt("mapred.reduce.tasks", 1);
レデューサーが 1 つしかないので、上位 20% を追跡し、それらをレデューサー内run()
またはcleanup()
レデューサーから放出できます。詳しくはこちらをご覧ください。
于 2013-03-01T19:27:44.533 に答える