0

私はMapReduceについてここで読んでいました.最初の例は、ドキュメント内の各単語の出現回数を数えています. ドキュメント内の上位 20% の単語を取得したいと考えていましたが、どうすればそれを達成できるでしょうか? クラスタ内の各ノードはファイル全体を表示できず、1 つの単語のすべての出現箇所のリストだけを表示できるため、不自然に思えます。それを達成する方法はありますか?

4

1 に答える 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 に答える