【问题标题】:Spark Standalone cluster mode need jar in all executorsSpark Standalone集群模式需要所有执行器中的jar
【发布时间】:2018-02-06 21:47:43
【问题描述】:

根据documentation,我正在使用具有两个节点的集群的 Spark Standalone:

使用 spark-submit 时,应用程序 jar 以及任何 jar 包含在 --jars 选项中的将自动转移到 集群。 --jars 之后提供的 URL 必须用逗号分隔。 该列表包含在驱动程序和执行程序类路径中。目录 扩展不适用于 --jars。

我认为当从两台机器中的一台执行spark-submit 时,它会将所有通过 --files 选项和可执行 jar 传递的文件都带入 spark 集群。

相反,它会失败,有时(我的意思是在选择掌握其他节点时),因为文件或更糟糕的是,找不到JAR。我不得不通过集群(相同的路径)分发文件和罐子。

注意:我用this documentation 中所说的所有内容设置了集群

N.B.2:在代码中,我使用 SparkFiles.get 方法获取文件(在 Spark 上下文初始化之后)

N.B.3:我使用的 spark-sumbit 命令或多或少是这样的:

${SPARK_DIR}/bin/spark-submit --class ${CLASS_NAME} --files ${CONF_FILE},${HBASE_CONF_FILE} --master ${SPARK_MASTER} --deploy-mode cluster ${JAR_FILE}

【问题讨论】:

    标签: scala apache-spark


    【解决方案1】:

    这是意料之中的。 --jars--files 与驱动程序相关。因为您使用cluster 模式,驱动程序运行在任意执行程序节点上。因此,每个执行者都需要访问该文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-28
      • 2017-02-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多