我在独立模式下设置了一个简单的Spark集群,并希望使用Apache Zeppelin作为交互式Spark "scratchpad“。不幸的是,当SparkContext
启动时,它会占用我的实验集群上的所有内核。我知道有一个名为“动态分配”的新功能,但它只适用于纱线。我在这个集群上没有YARN,我也不想运行一个成熟的Hadoop堆栈,因为我想使用Cassandra作为数据后端。
在不使用纱线的情况下,这是可能的吗?
发布于 2015-09-06 16:40:12
您可以使用Mesos而不是Yarn。Spark允许您在粗粒度模式下设置它从Mesos请求的内核数量。为此,请设置以下选项:
spark.mesos.coarse=true
spark.cores.max={The number of cores you wish to allocate}
您可以通过Zeppelin中的解释器窗口设置这些设置。
请注意,在粗粒度模式下,Zeppelin将持续占用这些核心-即使它实际上没有做任何工作。
发布于 2015-09-06 20:26:01
实际上我最后选择了YARN,因为我发现在下面使用Hadoop堆栈有一些额外的好处:
InputFormat
来读取数据,使用Spark进行预处理,并将结果溢出到Cassandra我认为在集群上做预处理应该比在客户机上更快。
https://stackoverflow.com/questions/32423503
复制