5

データの局所性を含め、CassandraクラスターでMapReduceを実行する必要があります。各ジョブは、ジョブが実行されるローカルのCasandraノードに属する行のみを照会します。

古いCassandraバージョン(0.7)でMR用にHadoopをセットアップする方法に関するチュートリアルがあります。現在のリリースではそのようなものは見つかりません。

この点で0.7から何が変わったのですか?

最小限のセットアップ(Hadoop + HDFS + ...)にはどのソフトウェアモジュールが必要ですか?

Cassandra Enterpriseが必要ですか?

4

2 に答える 2

14

Cassandra には、Hadoop との統合に十分ないくつかのクラスが含まれています。

  • ColumnFamilyInputFormat- これは、Cassandra のランダム パーティショナーを使用する場合に 1 つの CF からすべての行を読み取ることができる Map 関数の入力であり、Cassandra の順序付きパーティショナーを使用する場合は行範囲を読み取ることができます。Cassandra クラスターはリング形式を持ち、各リング部分が具体的なキー範囲を担当します。Input Format の主なタスクは、Map 入力を並列処理可能なデータ部分に分割することです。これらは と呼ばれInputSplitsます。Cassandra の場合、これは単純です。各リング範囲には 1 つのマスター ノードがあり、これは、Input Format がInputSplitリング要素ごとに 1 つを作成し、1 つの Map タスクになることを意味します。次に、データが保存されているホストと同じホストでマップ タスクを実行します。それぞれInputSplitがそのリング部分の IP アドレスを記憶しています。これは、この特定のキー範囲を担当する Cassandra ノードの IP アドレスです。JobTrackerマップ タスク フォームを作成し、実行のためInputSplitsに割り当てますTaskTracker。と同じ IP アドレスを持つものJobTrackerを見つけようとします- 基本的に Cassandra ホストで開始する必要があり、これによりデータの局所性が保証されます。TaskTrackerInputSplitTaskTracker
  • ColumnFamilyOutputFormat- これにより、Reduce 関数のコンテキストが構成されます。結果をCassandraに保存できるように
  • すべての Map 関数の結果は、reduce 関数に渡す前に結合する必要があります。これはシャッフルと呼ばれます。ローカル ファイル システムを使用します。Cassandra の観点からは、ここで何もする必要はありません。ローカルの一時ディレクトリへのパスを構成するだけで済みます。また、このソリューションを別のもの (Cassandra で永続化するなど) に置き換える必要はありません。このデータは複製する必要はありません。Map タスクはべき等です。

基本的に、提供された Hadoop 統合を使用すると、データが存在するホストで Map ジョブを実行する可能性がなくなり、Reduce 関数で結果を Cassandra に保存できます。必要なのはそれだけです。

Map-Reduce を実行するには、次の 2 つの方法があります。

  • org.apache.hadoop.mapreduce.Job- このクラスは、1 つのプロセスで Hadoop をシミュレートします。Map-Resuce タスクを実行し、追加のサービスや依存関係は必要ありません。一時ディレクトリにアクセスするだけで、マップ ジョブの結果をシャッフル用に保存できます。基本的に、Map タスク、Reduce タスク、入力形式、Cassandra 接続のクラス名などを含む Job クラスのいくつかのセッターを呼び出す必要があります。セットアップが完了job.waitForCompletion(true)すると、呼び出される必要があります。Map-Reduce タスクを開始し、結果を待ちます。このソリューションを使用して、Hadoop の世界にすばやく参入し、テストすることができます。スケーリングせず(単一プロセス)、ネットワーク経由でデータをフェッチしますが、それでも最初は問題ありません。
  • 実際の Hadoop クラスター - まだセットアップしていませんが、理解したとおり、前の例の Map-Reduce ジョブは問題なく動作します。Hadoop クラスターで Map-Reduce クラスを含む jar を配布するために使用される追加の HDFS が必要です。
于 2012-10-17T06:59:17.140 に答える
3

はい、私は同じものを探していました.DataStaxEnterpriseにはHadoop統合が簡素化されているようです.

于 2012-10-06T14:11:13.367 に答える