2

私は Hadoop mapreduce フレームワークの世界の初心者です。私は自分で多くのチュートリアルを読み、フレームワークを理解しました。疑似分散モードで Hadoop セットアップを正常に構成しました。Hadoop MapReduce で達成する必要がある特定のタスクが 2 つあります。

次の形式のデータ ファイルが多数あります。

交換されたメッセージの数。ユーザー1; ユーザー2; タイムスタンプ;

例は次のとおりです。ジョン・ドウ; ジョンスミス; 1900 年 1 月 1 日。

私が達成したいことは

  1. ユーザー名に対してデータマスキングを行います(ユーザー名の上にSHA256を構築して匿名にするなど)。

  2. 特定の期間 (たとえば 1 週間) に交換されたメッセージの数を集計します。

ここで私の質問に移りましょう。私の現在の知識によると、hadoop mapreduce フレームワークは 2 番目のタスクを達成することを目的としています。キー値 (メッセージが交換された 2 人のユーザー名、メッセージ数) をマッピングし、それを減らして、特定の期間 (たとえば 1 週間) のメッセージの総数を得ることができます。しかし、最初のタスクはどうですか?データ マスキングを行う場合、reduce 操作はありません。このタスクは hadoop mapreduce 用のものではありませんか? 並行して実行したいのですが、最初のタスクを達成するために Hadoop mapreduce を適用することは考えられません。処理する必要があるデータ ファイルの数が非常に多いため、とにかく hadoop mapreduce を使用することが考えられます。

コメントしてくれてありがとう!

PS: この質問は、「hadoop MapReduce が最も適しているのはどのタイプのタスクですか?」という質問に一般化できます。

4

1 に答える 1

2

最初のタスクは、マップのみのジョブに最適です。MapReduce は、一般に、並べ替え、マッピング (データに凝った関数を適用)、およびデータの削減に適しています。

したがって、あなたの問題はMRに非常によく適合します。

MapReduce は、タスク間の強力な通信や、グラフ アルゴリズムのような反復の多いタスクが必要な場合には適していません。BSP が最適な場合は、Hama または Giraph のいずれかを選択できますが、Giraph は主にグラフ処理を提供し、Hama はグラフ処理用のモジュールも備えた純粋な BSP フレームワークです。

于 2012-06-01T08:22:25.323 に答える