序言:最近草原狼在搞一个sparkstreaming读取kafka写入hive的小需求,由于之前几乎没接触过实时这块,所以显得较为生疏,从接到需求到完成开发,花了好几天时间。过程中,更是遇到了不少先前未曾遇到的问题。如果有小伙伴也在搞这块,欢迎公众号后台留言交流,草原狼看到后会第一时间回复您的。废话就不多说了,今晚就跟大家聊下spark-submit提交任务时的--jar参数如何使用。
方法一,也是最常用的,当我们的程序需要引入的外部依赖非常少时,我们可以直接填写每一个jar包的绝对路径,并按照官方说明,jar包之间用逗号隔开即可(具体如下):
1#!/bin/sh
2MINING_LIB=/home/lib/test/test.jar
3
4spark-submit --class com.test.Test \
5 --master yarn-cluster \
6 --num-executors 30 \
7 --executor-memory 15g \
8 --driver-memory 5g \
9 --executor-cores 5 \
10 --total-executor-cores 150 \
11 --files /home/conf/test/test.conf,\
12 --jars /home/lib/common/test01.jar,/home/lib/common/test02.jar \
13 --conf spark.yarn.queue=QueueC \
14 $MINING_LIB $* &
15
16echo "处理完成"
方法二,如果我们提交任务时需要引入的外部依赖有多个,此时,我们可以考虑首先把所有依赖jar包放到同一个目录下,然后通过Linux shell命令$(echo 具体目录/*.jar | tr ' ' ',')进行配置(见下):
1#!/bin/sh
2MINING_LIB=/home/lib/test/test.jar
3export NO_WAREHOUSE_PHASE=no
4spark-submit --class com.test.Test \
5 --master yarn-cluster \
6 --num-executors 30 \
7 --executor-memory 15g \
8 --driver-memory 5g \
9 --executor-cores 5 \
10 --total-executor-cores 150 \
11 --files /home/conf/test/test.conf,\
12 --jars $(echo /home/lib/common/*.jar | tr ' ' ',') \
13 --conf spark.yarn.queue=QueueC \
14 $MINING_LIB $* &
15
16echo "处理完成"
阅读本文的人还看了:
文章转载自大数据技术宅,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。





