我有一个exec,它接受一个cassandra主键作为输入。
Cassandra Row: (id, date), clustering_key, data
./exec id date
每个exec都可以访问给定主键的多个行。在对数据执行执行后,它将结果存储在DB中。
我有多个这样的高手,我想在存储数据的节点上运行exec。如何使用spark实现这一目标?
另外,我如何接收运行exec的节点ip [用于验证目的]。
注意:在exec中我通过执行查询来访问数据:
select data from table where id = t_id and date = t_date and clustering_key = t_clustering_key
答案 0 :(得分:0)
如果你想使用Spark(带数据局部性),你必须编写Spark程序来执行exec
正在做的事情。 Spark驱动程序(您可以使用DataStax Cassandra / Spark Connector)自动处理地点问题。
如果你想在没有编写Spark程序的情况下利用数据位置,那么它将变得困难,在这种情况下,我根本不知道你是否需要Spark。
P.S。如果你在Spark中进行一次shuffle操作(我不认为你在做),那么编写一个Spark程序对数据局部性也无济于事。
参考文献: Presentation by Datastax employee about Spark and Cassandra data locality