操做:將第三方jar文件打包到最終造成的spark應用程序jar文件中java
應用場景:第三方jar文件比較小,應用的地方比較少mysql
操做:使用spark-submit提交命令的參數: --jarssql
要求:shell
一、使用spark-submit命令的機器上存在對應的jar文件vim
二、至於集羣中其餘機器上的服務須要該jar文件的時候,經過driver提供的一個http接口來獲取該jar文件的(例如:http://192.168.187.146:50206/jars/mysql-connector-java-5.1.27-bin.jar Added By User)bash
1
2
3
|
## 配置參數:--jars JARS
以下示例:
$ bin
/spark-shell
--jars
/opt/cdh-5
.3.6
/hive/lib/mysql-connector-java-5
.1.27-bin.jar
|
應用場景:要求本地必需要有對應的jar文件maven
操做:使用spark-submit提交命令的參數: --packagesoop
## 配置參數:--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地址,若不給定,則會使用該機器安裝的maven默認源中下載
## 若依賴多個包,則重複上述jar包寫法,中間以逗號分隔
## 默認下載的包位於當前用戶根目錄下的.ivy/jars文件夾中
應用場景:本地能夠沒有,集羣中服務須要該包的的時候,都是從給定的maven地址,直接下載spa
操做:更改Spark的配置信息:SPARK_CLASSPATH, 將第三方的jar文件添加到SPARK_CLASSPATH環境變量中code
注意事項:要求Spark應用運行的全部機器上必須存在被添加的第三方jar文件
A.建立一個保存第三方jar文件的文件夾: 命令:$ mkdir external_jars
B.修改Spark配置信息 命令:$ vim conf/spark-env.sh 修改內容: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/
應用場景:依賴的jar包特別多,寫命令方式比較繁瑣,被依賴包應用的場景也多的狀況下
或者在spark-default.conf下面,配置
spark.executor.extraClassPath=/data/* spark.driver.extraClassPath=/data/*