Spark Standalone集群模式在所有执行程序中都需要jar

时间:2018-02-06 21:47:43

标签: scala apache-spark

我正在玩Spark Standalone,其中包含两个节点的集群,并且根据documentation

  

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

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

相反它会失败,有时候(我的意思是选择另一个节点作为主人),因为文件或更糟糕的是,没有找到jar。我不得不通过集群(相同的路径)分发文件和罐子。

N.B。:我在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}

1 个答案:

答案 0 :(得分:1)

可以预见。 --jars--files与驱动程序相关。因为您使用cluster模式,所以驱动程序在任意执行程序节点上运行。因此,每个执行程序都需要访问该文件。