2016-09-07 26 views
0

我有一個exec,它接受一個cassandra主鍵作爲輸入。使用Spark + Cassandra利用數據局部性執行作業

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

每個exec可以訪問給定主鍵的多個行。在對數據執行執行之後,它將結果存儲在數據庫中。

我有多個這樣的execs,我想在一個存儲數據的節點上運行exec。我如何使用spark來實現這一點?

另外,如何接收exec已運行的節點ip [用於驗證目的]。

注:在EXEC我被執行的查詢訪問數據:

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

回答

0

如果你想使用星火(有數據局部性),你必須寫星火計劃做exec正在做同樣的事情。 Spark驅動程序(您可以使用DataStax Cassandra/Spark連接器)自動處理局部性問題。

如果您想在不編寫Spark程序的情況下利用數據局部性,那麼將會很困難,並且我不知道您是否需要Spark,在這種情況下。

P.S.如果你在Spark中做一個shuffle操作(我認爲你沒有這樣做),那麼寫一個Spark程序也不會對數據局部性有所幫助。

參考文獻: Presentation by Datastax employee about Spark and Cassandra data locality