我正在玩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
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}
答案 0 :(得分:1)
可以预见。 --jars
和--files
与驱动程序相关。因为您使用cluster
模式,所以驱动程序在任意执行程序节点上运行。因此,每个执行程序都需要访问该文件。