如何在多节点Cassandra集群中设置Spark?

8
首先,我没有使用DSE Cassandra。我正在自己构建集群,并使用Microsoft Azure托管服务器。
我有一个2个节点的Cassandra集群,我已经成功地在单个节点上安装了Spark,但我找不到任何关于在多节点集群上设置它的在线资源。
这不是一个重复的问题:如何设置Spark Cassandra多节点集群? 为了在单个节点上设置它,我遵循了这个教程 "设置带有Cassandra连接器的Spark"。
1个回答

6
您有两个高级任务:
1.设置Spark(单节点或群集); 2.设置Cassandra(单节点或群集);
这些任务是不同的,没有关联(如果我们不谈论数据位置)。 如何在集群中设置Spark,您可以在这里找到架构概述。通常有两种类型(独立,其中您直接在主机上设置Spark,或者使用任务调度程序(Yarn,Mesos)),您应该根据自己的要求进行选择。由于你是自己构建的,我想你会使用独立安装。一个节点和多个节点的区别在于网络通信。默认情况下,Spark在localhost上运行,更常见的是使用FQDNS名称,因此您应该在/etc/hosts和hostname-f中配置它或尝试IP地址。请查看此页面,其中包含所有节点之间通信所需的所有必要端口。所有端口都应在节点之间开放和可用。请注意,默认情况下,Spark使用带有随机端口的TorrentBroadcastFactory
有关Cassandra,请查看以下文档:12,教程3,等等。您可能需要4。您还可以使用docker容器中的Mesos内部的Cassandra。
附:如果数据位置是您的情况,则应自行想出一些方法,因为Mesos和Yarn都不能处理将Spark作业运行在靠近Cassandra分区的分区数据上。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接