我在独立模式下设置了一个简单的Spark集群,并希望将Apache Zeppelin用作交互式Spark" scratchpad"。不幸的是,当SparkContext
启动时,它会占用我的实验群集上的所有核心。我知道有一个名为" Dynamic Allocation"但它只适用于YARN。我在这个集群上没有YARN,我不想运行一个成熟的Hadoop堆栈,因为我想使用Cassandra作为数据后端。
在不使用YARN的情况下,这是否可行?
答案 0 :(得分:0)
您可以使用Mesos而不是Yarn。 Spark允许您在粗粒度模式下设置从Mesos请求的核心数。为此,请设置以下选项:
spark.mesos.coarse=true
spark.cores.max={The number of cores you wish to allocate}
您可以通过Zeppelin中的Interpreter窗口设置这些。
请注意,在粗粒度模式下,Zeppelin将持续占用这些核心 - 即使它实际上没有做任何工作。
答案 1 :(得分:0)
我实际上最终选择了YARN,因为我发现下面有一个Hadoop堆栈有一些额外的优势:
InputFormat
来读取数据,使用Spark进行预处理并将结果溢出到Cassandra 我认为在群集上进行预处理应该比在客户端上更快。