从2个不同的cassandra会话中读取/写入相同的密钥空间

时间:2016-12-14 21:18:52

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

我有两个使用spark-cassandra连接器连接到Cassandra的火花作业。 https://github.com/datastax/spark-cassandra-connector

第一份工作使用Kafka在Spark中传输数据并实时处理。处理完每条消息后,它会将消息保存到Cassandra。

第二个作业是批处理作业,每隔10秒就会从cassandra中读取数据。

因此,一个流式火花作业正在将数据写入Cassandra键空间,并且一次又一次地部署其他批处理作业以从 SAME 键空间读取数据。我的问题是:

你可以从2个火花作业中打开2个会话来读取/写入相同的键空间吗?

注意:我也使用相同的用户名/密码从两个火花作业连接到cassandra。

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。这个问题与卡桑德拉无关。我的Spark集群资源非常有限。所有资源都是由我的流媒体工作完成的。当我部署批处理作业时,没有资源可以分配,我的工作处于等待状态。完成其他工作后,我的批处理作业就能运行了。

我更改了两个spark任务的配置,只使用1核和1 gb的RAM作为驱动程序/执行程序。现在,我的两个工作并行运行,没有任何问题。两个作业都使用相同的用户名/密码连接到Cassandra,一个作业正在写入cassandra,而另一个作业是从同一个键空间读取。

我的密钥空间的复制因子是1。

因为,我的批处理工作挂了,我认为问题必须是Cassandra,因为我正在读/写同一个键空间。这是我第一次与cassandra进行互动....