Kafka-> Spark-> Cassandra强制数据局部性

时间:2016-05-18 08:24:05

标签: apache-spark cassandra apache-kafka spark-streaming spark-cassandra-connector

我有一个流式处理流程,它从Kafka读取数据,使用Spark处理它并将数据写入Cassandra。

这将在具有3-5个节点的群集上运行。我的计划是在集群的每个节点上部署spark,kafka和cassandra。

我想尽可能地强制执行数据局部性,并且我的意思是每个Spark节点从Kafka读取仅在该节点上的数据,在本地处理它(没有改组转换在我的管道中),并写入该节点中的 Cassandra

所以,我的问题如下:

1)为了将相同的主题存储在多个节点上,我是否需要对Kafka主题进行分区?

2)我是否需要同步(设置为相同)Kafka分区器和Cassandra分区器,以便我确信到达节点X上的Kafka分区的数据肯定会存储在同一节点上的Cassandra中?

3)在Spark管道中还有其他我应该特别注意的事项吗?我正在使用Spark-Cassandra Connector,它应该利用数据局部性(以便每个Spark任务读取存储在该特定节点上的数据)。

任何博客文章或文章都解释了如何做到这一点,我们非常感激。

此致

斯尔詹

0 个答案:

没有答案