1

我在独立模式下设置了一个简单的 Spark 集群,并希望将 Apache Zeppelin 用作交互式 Spark“便签本”。不幸的是,当SparkContext它启动时,它占据了我的实验集群上的所有核心。我知道有一个名为“动态分配”的新功能,但它只适用于 YARN。我在这个集群上没有 YARN,我不想运行成熟的 Hadoop 堆栈,因为我想使用 Cassandra 作为数据后端。

如果不使用 YARN,这是否可能?

4

2 回答 2

0

你可以使用 Mesos 而不是 Yarn。Spark 允许您在粗粒度模式下设置它从 Mesos 请求的核心数量。为此,请设置以下选项:

spark.mesos.coarse=true 
spark.cores.max={The number of cores you wish to allocate}

您可以通过 Zeppelin 中的解释器窗口设置这些。

请注意,在粗粒度模式下,Zeppelin 将持续占用这些核心——即使它实际上并没有做任何工作。

于 2015-09-06T16:40:12.017 回答
0

实际上我最后还是选择了 YARN,因为我发现下面有一个 Hadoop 堆栈还有一些额外的优势:

  • 我可以使用 HDFS 作为将数据导入 Cassandra 的源,因此我不必担心 Spark 源文件的可访问性
  • 我可以编写自定义InputFormats 来读取数据,使用 Spark 进行预处理并将结果溢出到 Cassandra

我认为在集群上进行预处理应该比在客户端上更快。

于 2015-09-06T20:26:00.833 回答