【问题标题】:Can Apache Zeppelin auto-close its SparkContext after some time and re-open it?Apache Zeppelin 可以在一段时间后自动关闭其 SparkContext 并重新打开它吗?
【发布时间】:2015-12-02 02:44:33
【问题描述】:

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

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

【问题讨论】:

    标签: hadoop apache-spark apache-zeppelin


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 我最终还是选择了 YARN。这样做的好处是我还有 HDFS,我可以在其中上传要添加到 Cassandra 的数据。然后我可以定义我的自定义 InputFormats,使用 sc.newAPIHadoopFile 获取 RDD 并将它们添加到 Spark 中的数据库中。
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-24
      • 1970-01-01
      • 2017-03-25
      • 1970-01-01
      • 2011-01-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多