方法一,也是最常用的,当我们的程序需要引入的外部依赖非常少时,我们可以直接填写每一个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 "处理完成"