0

我有2个使用spark-cassandra连接器连接到Cassandra的spark任务。 https://github.com/datastax/spark-cassandra-connector从2个不同的cassandra会话读取/写入同一个密钥空间

第一份工作是使用卡夫卡在Spark中流数据并实时处理。处理完每封邮件后,它将邮件保存到Cassandra。

第二项工作是每10秒钟从cassandra读取数据的批处理作业。

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

你能从2个spark任务中打开2个会话来读/写相同的keyspace吗?

注意:我也使用相同的用户名/密码连接cassandra从这两个spark工作。

+0

你想要批量作业是累积的还是仅仅是最后10秒? – RussS

+0

我希望它是通用的。 –

回答

0

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

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

复制因子为1

,因为我的批处理作业被挂,我认为这个问题必须与卡桑德拉因为我读/写相同的密钥空间。这是我第一次与cassandra进行交互,因此......

相关问题