操做:将第三方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/*