Hadoopのサポート

CassandraにHadoopを統合するためのCassandraサポート

CassandraにHadoopを統合するためのCassandraサポートには、以下が含まれます。
  • MapReduce
注: Apache PigはCassandra 3.0以降、サポートされなくなりました。
Cassandra 2.1はHadoop 2.xまたは1.xと併用できますが、一部制約があります。
  • CassandraとHadoopのノードを別々のデータ・センターに分離します。
  • Cassandra/Hadoopノードのデータ・センターを開始する前に、仮想ノード(vnode)を無効にしてください。
仮想ノードを無効にするには:
  1. cassandra.yamlファイルで、num_tokensを1に設定します。
  2. initial_tokenプロパティのコメントを解除し、1、またはマルチノード・クラスター用のgenerated tokenの値に設定します。
  3. クラスターを初めて起動します。

    既存のクラスターでvnodeを無効にしたり有効にしたりしないでください。

Apacheドキュメントに記載されているセットアップと構成では、CassandraノードにHadoopクラスターを重ね合わせ、Hadoop NameNode/JobTracker用に別のサーバーを設定して、Hadoop TaskTrackerとデータ・ノードを各Cassandraノードにインストールする必要があります。Cassandraデータ・センターのノードは、HDFSデータ・ノード内のデータからだけでなく、Cassandraからも引き出すことができます。ジョブ・トラッカー/リソース・マネージャー(JT/RM)は、クライアント・アプリケーションからMapReduceの入力を受け取ります。JT/RMは、MapReduceジョブ要求をタスク・トラッカー/ノード・マネージャー(TT/NM)およびオプションのクライアント、MapReduceに送信します。データはCassandraに書き込まれ、結果はクライアントに送り返されます。

Apacheドキュメントでは、構成と統合のサポートを入手する方法についても取り上げています。

入力形式と出力形式

HadoopジョブはCQLテーブルやインデックスからデータを受け取ることができ、データはHadoopジョブからCassandraに読み込むことが可能です。Cassandra 2.1はこれらのタスクで以下の形式をサポートしています。

  • CQLパーティション入力形式:ColumnFamilyInputFormatクラス
  • BulkOutputFormatクラス

Cassandra 2.1.1以降では、BulkOutputFormatクラスのCQL互換バージョンであるCqlOutputFormatがサポートされています。CQLOutputFormatは、Hadoop固有のOutputFormatとしての役割を果たします。削減タスクは、所定のCQLテーブルでキー(および対応するバインドされた変数値)をCQL行(およびそれぞれのカラム)として保存できます。

wordcountの例の実行

Wordcountの例のJARは、Cassandraソース・コード・インストールのexamplesディレクトリーにあります。CQLと古い例は、それぞれhadoop_cql3_word_countサブディレクトリーとhadoop_word_countサブディレクトリーにあります。readmeファイルの指示に従ってください。

HadoopワークロードとCassandraワークロードの分離

CQLを使用してキースペースを作成すると、1つのノードのクラスターであっても、Cassandraではクラスターの仮想データ・センターが自動的に作成されます。同じ種類のワークロードを実行するノードを同じデータ・センターに割り当てます。異なる種類のノードを対象とした異なる仮想データ・センターは、Hadoopを実行するワークロードとCassandraを実行するワークロードを分離します。ワークロードを分離することで、データ・センターごとに1種類のワークロードだけがアクティブになります。CassandraリアルタイムOLTPクエリーのように、シーケンシャル・データ読み込みを実行するノードと他の種類のワークロードを実行するノードを分離するのがベスト・プラクティスです。

cassandra.yamlファイルの場所は、インストールのタイプによって異なります。
パッケージ・インストール /etc/cassandra/cassandra.yaml
tarボール・インストール install_location/resources/cassandra/conf/cassandra.yaml
Windowsインストール C:\Program Files\DataStax Community\apache-cassandra\conf\cassandra.yaml