15

MapReduce が Cassandra .6 でどのように機能するかを誰か説明できますか? 単語カウントの例を読みましたが、Cassandra 側と「クライアント」側で何が起こっているのかよくわかりません。

https://svn.apache.org/repos/asf/cassandra/trunk/contrib/word_count/

たとえば、Python と Pycassa を使用しているとします。新しい map reduce 関数をロードして呼び出すにはどうすればよいでしょうか。map reduce 関数は、cassandra サーバーにインストールされている Java でなければなりませんか? もしそうなら、どのように Pycassa から呼び出すことができますか?

これをすべて簡単にする Pig についての言及もありますが、私は完全な Hadoop 初心者なので、あまり役に立ちませんでした。

あなたの答えはThriftなどを使用できます。クライアント側を示すためにPycassaについて言及しました。Cassandraクラスターで実行されるものと、リクエストを行う実際のサーバーとの違いを理解しようとしています。

4

3 に答える 3

10

私が聞いたこと (およびここから) によると、開発者がデータ ソースとして Cassandra を使用する MapReduce プログラムを作成する方法は次のとおりです。通常のMapReduceプログラムを作成し(リンクした例は純粋なJavaバージョン用です)、現在利用可能なjarは、入力ソースを(デフォルトのHadoopではなく)Cassandraにすることを可能にするCustomInputFormatを提供します。

Pycassa を使用している場合は、(1) そのプロジェクトのメンテナーが MapReduce のサポートを追加するか、(2) Java MapReduce プログラムを作成して実行するいくつかの Python 関数を一緒にスローするまで、運が悪いと思います。 . 後者は間違いなくちょっとしたハックですが、あなたを元気づけてくれるでしょう.

于 2010-04-29T00:52:38.803 に答える
2

それは地域について知っています。Cassandra InputFormat は getLocations() をオーバーライドしてデータの局所性を維持します

于 2010-08-21T01:40:23.247 に答える
1

cassandra から直接 InputFormat を使用するメリットは、データを効率的にストリーミングできることです。これは非常に大きなメリットです。各入力分割はトークンの範囲をカバーし、全帯域幅でディスクをロールオフします。シークも複雑なクエリもありません。各タスクトラッカーが同じノード上のcassandraプロセスからの入力分割を優先するようにするために、局所性について知っているとは思いません。

より直接的な Hadoop ストリーミングのサポートが導入されるまで、ハックとして STREAM メソッドで Pig を使用してみることができます。

于 2010-06-13T19:53:20.777 に答える