Maw*_*Pls 18 classpath hadoop-yarn typesafe-config apache-spark
我正在使用Typesafe Config(https://github.com/typesafehub/config)来参数化使用配置文件在yarn-cluster模式下运行的Spark作业.Typesafe Config的默认行为是在类路径中搜索名称与正则表达式匹配的资源,并自动将它们加载到配置类中ConfigFactory.load()(为了我们的目的,假设它调用的文件被调用application.conf).
我可以使用配置文件加载到驱动程序中--driver-class-path <directory containing configuration file>,但是使用--conf spark.executor.extraClassPath=<directory containing configuration file>不会将资源放在所有执行程序的类路径上.执行程序报告他们找不到我尝试添加到其类路径的配置文件中存在的密钥的某个配置设置.
使用Spark将文件添加到所有执行程序JVM的类路径的正确方法是什么?
Maw*_*Pls 21
看起来该spark.executor.extraClassPath属性的值是相对于EXECUTOR上的应用程序的工作目录.
因此,要正确使用此属性,应--files <configuration file>首先使用Spark将文件复制到所有执行程序的工作目录,然后使用spark.executor.extraClassPath=./将执行程序的工作目录添加到其类路径中.这种组合使得执行程序能够从配置文件中读取值.