0

分散マップリデュースプログラミングシステムを使用するのに最も簡単なものは何ですか?

例えば。それぞれが多くの接続を持つ多くのユーザーを含む分散データストアで、接続の総数を数えたいと言います。

Map:
for all records of type "user"
do for each user
    count number of connections
    retrun connection_count_for_one_user

Reduce:
reduce (connection_count_for_one_user)
    total_connections += connection_count_for_one_user

このようにプログラミングできるmapreduceシステムはありますか?

4

1 に答える 1

2

さて、私はいくつかの提案をすることに挑戦しますが、あなたの質問はあまり明確ではありません。

では、どのようにデータを保存していますか?ストレージメカニズムは、MapReduceアルゴリズムをデータに適用する方法とは別のものです。Hadoop分散ファイルシステムを使用していると仮定します。

あなたが説明する問題は、実際には典型的なHadoopMapReduceの単語数の例と非常によく似ています。言葉の代わりに、あなたは代わりにユーザーを数えているだけです。

HDFSに保存されているデータにMapReduceを適用するためのオプションのいくつかは次のとおりです。

  • Javaフレームワーク-Javaに慣れている場合に適しています。
  • Pig-高レベルのスクリプト言語。
  • Hive -SQLのようなインターフェースを提供するHadoopのデータウェアハウスソリューション。
  • Hadoopストリーミング-ほぼすべての言語でマッパーとリデューサーを作成できます。

どちらが最も簡単ですか?

それはすべて、あなたが快適に感じるものに依存します。Javaを知っている場合は、標準のJavaフレームワークを見てください。スクリプト言語に慣れている場合は、Pigまたはストリーミングを使用できます。SQLを知っている場合は、HiveQLを使用してHDFSをクエリすることを検討できます。出発点として、それぞれのドキュメントを見てみましょう。

于 2010-02-19T01:49:56.323 に答える