2016-09-07 6 views
0

私は入力としてcassandra主キーを受け付けるexecを持っています。データローカリティを利用してSpark + Cassandraを使用してジョブを実行

Cassandra Row: (id, date), clustering_key, data 
./exec id date 

各execは、特定の主キーに対して複数の行にアクセスできます。データの実行後、結果はDBに格納されます。

私はそのような複数のexecを持っており、データを格納するノードでexecを実行したいと思います。スパークを使ってこれをどのように達成できますか?

また、execが[確認のために]実行されているノードIPを受信するにはどうすればよいですか。

注:幹部で、私は、クエリを実行することでデータにアクセスしています:

select data from table where id = t_id and date = t_date and clustering_key = t_clustering_key 

答えて

0

あなたが(データの局所性を)スパークを使用したい場合、あなたはexecがやっているのと同じことを行うためのスパークプログラムを記述する必要があります。 Sparkドライバ(DataStax Cassandra/Spark Connectorを使用することができます)は、ローカリティの問題を自動的に処理します。

Sparkプログラムを書かずにデータのローカリティを利用したいのであれば、それは難しくなるでしょう。その場合、Sparkが必要かどうかわかりません。

P.S.あなたがSparkでシャッフル操作をしているのであれば(私はあなたがやっているとは思わない)、Sparkプログラムを書くことはデータの局所性を助けることもしません。

参考文献: Presentation by Datastax employee about Spark and Cassandra data locality

関連する問題