【问题标题】:How to setup Spark with a multi node Cassandra cluster?如何使用多节点 Cassandra 集群设置 Spark?
【发布时间】:2018-01-18 21:11:49
【问题描述】:
【问题讨论】:
标签:
apache-spark
cassandra
spark-cassandra-connector
【解决方案1】:
这里有两个高级任务:
- 设置 Spark(单节点或集群);
- 设置 Cassandra(单节点或集群);
这些任务是不同的并且不相关(如果我们不是在谈论数据局部性)。
如何在集群中设置 Spark,您可以在此处找到 Architecture overview。
通常有两种类型(独立的,直接在主机上设置 Spark,或者使用任务调度程序(Yarn,Mesos)),您应该根据您的要求。
由于您都是自己构建的,我想您将使用Standalone installation。一个节点之间的区别在于网络通信。默认情况下,Spark 在 localhost 上运行,更常见的是它使用 FQDNS 名称,因此您应该在 /etc/hosts 和 hostname -f 中配置它或尝试使用 IP。
查看this page,它包含节点通信所需的所有端口。所有端口都应该在节点之间打开并且可用。
请注意,默认情况下 Spark 使用带有随机端口的 TorrentBroadcastFactory。
对于 Cassandra,请参阅此文档:1、2、教程3 等。
您可能需要4。您还可以使用 docker containers 在 Mesos 中使用 Cassandra。
附言如果数据局部性是你的情况,你应该想出你自己的东西,因为 Mesos 和 Yarn 都不会处理更接近 Cassandra 分区的分区数据的运行 spark 作业。