需求场景
使用yarn-cluster模式提交Spark任务且需要读取的外部配置文件在本地(driver端)
,当然也可以把外部配置文件放在hdfs上以达到给所有executor广播的效果,但是此处单讨论懒人偏爱操作
解决办法
1、 在Spark-submit命令中加上参数 --files application.conf (可以配置多个文件,逗号隔开)
spark-submit --queue root.bigdata --master yarn-cluster --name targetStrFinder --executor-memory 2G --executor-cores 2 --num-executors 5 --files ./application.conf # 此处是外部配置文件存放路径 --class targetFind ./combinebak.jar
2、 在代码中直接用ConfigFactor加载
import com.typesafe.config.ConfigFactory
val configer = ConfigFactory.load("application.conf")
log.info("获取输入源地址:" + configer.getString("data.source.path"))
不想作为配置文件来读取外部资源文件的话,还可以用如下方式:
val bs: BufferedSource = scala.io.Source.fromFile("application-out.conf")
bs.getLines().foreach(line => {
log.info("==========" + line.toString)
以上两种方式亲测可用,转载请注明出处,有问题敬请指教
如有不解,另请参考 https://blog.csdn.net/qq_41775852/article/details/104773502 这位老师写的比较专业
拒绝矫情,从我做起,



