第一种方式

操作:将第三方jar文件打包到最终形成的spark应用程序jar文件中

应用场景:第三方jar文件比较小,应用的地方比较少

第二种方式

操作:使用spark-submit提交命令的参数: --jars

要求:

1、使用spark-submit命令的机器上存在对应的jar文件

2、至于集群中其他机器上的服务需要该jar文件的时候,通过driver提供的一个http接口来获取该jar文件的(例如:http://192.168.187.146:50206/jars/mysql-connector-java-5.1.27-bin.jar Added By User)

## 配置参数:--jars JARS
如下示例:
$ bin/spark-shell --jars /opt/cdh-5.3.6/hive/lib/mysql-connector-java-5.1.27-bin.jar

应用场景:要求本地必须要有对应的jar文件

第三种方式

操作:使用spark-submit提交命令的参数: --packages


## 配置参数:--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地址,直接下载

第四种方式

操作:更改Spark的配置信息:SPARK_CLASSPATH, 将第三方的jar文件添加到SPARK_CLASSPATH环境变量中

注意事项:要求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 on yarn(cluster)模式)

spark on yarn(cluster),如果应用依赖第三方jar文件

最终解决方案:将第三方的jar文件copy到${HADOOP_HOME}/share/hadoop/common/lib文件夹中(Hadoop集群中所有机器均要求copy)

最新文章

  1. MVC系列2-Model
  2. Unity中游戏的声音管理
  3. Java经典实例:正则表达式,替换匹配的文本
  4. 翻译qmake文档(二) Getting Started
  5. EF DbModelBuilder
  6. Intent和Activity知识点总结
  7. SqlServer判断表是否存在
  8. Struts2 ValueStack
  9. [转]Geoserver实现WFS操作
  10. [笔记]A Practical Guide to Support Vector Classi cation
  11. MathJax使用指南
  12. 重磅发布:《阿里巴巴Android开发手册(规约)》
  13. 几种常用hash算法及原理
  14. springboot整合shiro后报java.lang.ClassCastExcepting异常
  15. springcloud~配置中心实例搭建
  16. JS 获取某个容器控件中id包含制定字符串的控件id列表
  17. 【Java基础】【18Map集合&模拟斗D主X排和F排】
  18. 老男孩python学习自修第十七天【装饰器】
  19. HDU3584 Cube
  20. MongoDB简介及基础知识

热门文章

  1. 用溪流 WarKey 辅助红警开局快捷操作
  2. 【学习笔记】珂朵莉树(ODT)
  3. java入门与进阶P-6.1+P-6.2
  4. 【学习笔记】QT从入门到实战完整版(菜单栏、工具栏、浮动窗口、状态栏、中心部件)(3)
  5. vue学习笔记(一) ----- vue指令(菜单列表案例)
  6. layedit 清空 编辑器
  7. git操作出现 error: The following untracked working tree files would be overwritten by ...
  8. 2021级《JAVA语言程序设计》上机考试试题6
  9. 多线程并发(二):聊聊AQS中的共享锁实现原理
  10. echart折线图异常多出一条连接线