spark读取外部配置文件

本文介绍如何在Spark程序中使用properties或YAML文件进行配置参数管理,通过实例演示了从YAML文件读取配置并应用于Spark程序的方法,解决实际部署中遇到的路径问题。

配置参数可以写在项目中的properties.xml中也可以在spark-submit上面写上你的配置参数,如果配置参数足够多,写到spark-submit后面很麻烦可以把这些配置参数写到一个文件中,直接读取配置文件获取配置。
建一个property.yml,配置如下

es.nodes: 127.0.0.1
es.port: 9356

spark程序如下

 def main(args: Array[String]): Unit = {
    val conf = new SparkConf().setAppName("justForTry")
    val sc = new SparkContext(conf)
   // val session = SparkSession.builder().config(conf).getOrCreate()
    val props = new Properties();
    props.load(new FileInputStream("property.yml"));
    val nodes = props.getProperty("es.nodes");
    val port = props.getProperty("es.port");

  println(nodes+"--"+port)
  sc.stop()
  }

将配置文件放到你的服务器上,提交命令

spark-submit --master yarn --deploy-mode cluster --class readFile --files /root/property.yml Monkey-1.0-SNAPSHOT.jar

中间遇到的问题:我在root目录下执行的。jar包和配置文件也在root下,结果–files 时候我直接写property.yml 发现报错说找不到这个文件,后来我改成/root/property.yml 就可以了。一定要把路径写完整

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值