暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

spark-submit --jars参数添加多依赖包技巧

大数据技术宅 2021-04-27
4431
序言:最近草原狼在搞一个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 "处理完成"



阅读本文的人还看了

集成学习:Bagging&Boosting的区别
机器学习——DBSCAN密度聚类
如何避免Hive分区操作的全表扫描
Kafka重要参数配置(下)
Kafka重要参数配置(上)
语音识别(LSTM+CTC)

大数据利器Hive
BP神经网络
初识TensorFlow
GAN模型生成手写字
深度学习(Deep Learning)资料大全(不断更新)
OpenCV+TensorFlow实现自定义手写图像识别
用TensorFlow教你做手写字识别(准确率94.09%)
Storm环境搭建(分布式集群)
机器学习——逻辑回归



扫码关注.大数据技术宅


文章转载自大数据技术宅,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论