sparkshelljarlib_spark-submit 应用程序第三方jar文件
第一種方式:打包到j(luò)ar應(yīng)用程序
操作:將第三方j(luò)ar文件打包到最終形成的spark應(yīng)用程序jar文件中
應(yīng)用場景:第三方j(luò)ar文件比較小,應(yīng)用的地方比較少
第二種方式:spark-submit 參數(shù) --jars
操作:使用spark-submit提交命令的參數(shù): --jars
要求:
1、使用spark-submit命令的機(jī)器上存在對應(yīng)的jar文件
2、至于集群中其他機(jī)器上的服務(wù)需要該jar文件的時(shí)候,通過driver提供的一個(gè)http接口來獲取該jar文件的(例如:http://192.168.187.146:50206/jars/mysql-connector-java-5.1.27-bin.jar Added By User)
## 配置參數(shù):--jars JARS
如下示例:
$ bin/spark-shell --jars /opt/cdh-5.3.6/hive/lib/mysql-connector-java-5.1.27-bin.jar
應(yīng)用場景:要求本地必須要有對應(yīng)的jar文件
第三種方式:spark-submit 參數(shù) --packages
操作:使用spark-submit提交命令的參數(shù): --packages
## 配置參數(shù):--packages jar包的maven地址
如下示例:
$ bin/spark-shell --packages mysql:mysql-connector-java:5.1.27 --repositories http://maven.aliyun.com/nexus/content/groups/public/
##--repositories 為mysql-connector-java包的maven地址,若不給定,則會使用該機(jī)器安裝的maven默認(rèn)源中下載
## 若依賴多個(gè)包,則重復(fù)上述jar包寫法,中間以逗號分隔
## 默認(rèn)下載的包位于當(dāng)前用戶根目錄下的.ivy/jars文件夾中
應(yīng)用場景:本地可以沒有,集群中服務(wù)需要該包的的時(shí)候,都是從給定的maven地址,直接下載
第四種方式:添加到spark的環(huán)境變量
操作:更改Spark的配置信息:SPARK_CLASSPATH, 將第三方的jar文件添加到SPARK_CLASSPATH環(huán)境變量中
注意事項(xiàng):要求Spark應(yīng)用運(yùn)行的所有機(jī)器上必須存在被添加的第三方j(luò)ar文件
A.創(chuàng)建一個(gè)保存第三方j(luò)ar文件的文件夾:
命令:$ mkdir external_jars
B.修改Spark配置信息
命令:$ vim conf/spark-env.sh
修改內(nèi)容:SPARK_CLASSPATH=$SPARK_CLASSPATH:/opt/cdh-5.3.6/spark/external_jars/*C.將依賴的jar文件copy到新建的文件夾中
命令:$ cp /opt/cdh-5.3.6/hive/lib/mysql-connector-java-5.1.27-bin.jar ./external_jars/
應(yīng)用場景:依賴的jar包特別多,寫命令方式比較繁瑣,被依賴包應(yīng)用的場景也多的情況下
備注:(只針對spark on yarn(cluster)模式)
spark on yarn(cluster),如果應(yīng)用依賴第三方j(luò)ar文件
最終解決方案:將第三方的jar文件copy到${HADOOP_HOME}/share/hadoop/common/lib文件夾中(Hadoop集群中所有機(jī)器均要求copy)
總結(jié)
以上是生活随笔為你收集整理的sparkshelljarlib_spark-submit 应用程序第三方jar文件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 360不仅仅能保护好你的电脑360不仅仅
- 下一篇: 子窗口_不同线程下主窗口与子窗口的信息交