spark 集群添加jar包 正解

本文介绍了如何使用正确的路径提交Spark作业,通过修改`spark-defaults.conf`配置文件确保作业运行。同时,分享了两种添加额外jar包的方法,一种是直接上传到HDFS,另一种是打包所有必需jar为zip文件。这两种方法均不会影响现有业务,并且在集群扩容时无影响。
摘要由CSDN通过智能技术生成

前置

1、先说一下spark-submit 提交命令 ,应该采用 如下路径的spark-submit,因为这样才会读取spark-default.conf

>> /opt/cloudera/parcels/CDH/lib/spark/spark-submit

2、如果无法找到正确的路径,采用配置方式

如:

spark-submit --class org.apache.spark.examples.SparkPi --master yarn --properties-file spark-defaults.conf --deploy-mode cluster /opt/cloudera/parcels/CDH/lib/spark/examples/jars/spark-examples_2.11-2.4.0-cdh6.3.2.ja

2、添加一两个包的简单方法

spark 经常需要添加一两个jar包。一般采用如下方式,

1)、上传jar 到hdfs 路径。

如:hdfs:///spark-jars/spark.test.jar

2)、修改配置

>>vi /opt/cloudera/parcels/CDH/lib/spark/conf/spark-defaults.conf

>> 修改配置

spark.yarn.jars=local:/opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib/spark/jars/*,local:/opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib/spark/hive/*,hdfs:///spark-jars/spark.test.jar

即可

每次提交任务时spark 会去 hdfs上下载文件,

优点:不影响现有业务,jar包由客户端决定。扩容无影响

3、修改内部jar或者去除内部jar ,不影响现有系统方法

如果需要修改spark 内部的jar ,比如升级某个jar的版本。

1) 合并所有需要的jar,包括

/opt/work/CDH/lib/spark/hive/*

/opt/work/CDH/lib/spark/jars/*

业务需要的jar

升级后的jar

将上面的所有jar 包打成一个zip 包,注意zip包不要有层级。

2)将包上传到hdfs

如:hdfs:///spark-jars/spark.zip

3)修改spark-defaults.conf

删除 系统本身的jar

spark.yarn.jars=local:/opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib/spark/jars/*,local:/opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib/spark/hive/*,hdfs:///spark-jars/spark.test.jar

添加

spark.yarn.archive=hdfs:///spark-jars/spark.zip

spark.yarn.dist.innerarchives = hdfs:///spark-jars/spark.zip

优点:不影响现有业务,jar包由客户端决定。扩容无影响

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值