第一种方式

操作:将第三方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文件的文件夹:

命令:$mkdirexternal_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)

sparkshelljarlib_Spark应用程序第三方jar文件依赖解决方案相关推荐

  1. Spark应用程序第三方jar文件依赖解决方案

    Spark应用程序第三方jar文件依赖解决方案 参考文章: (1)Spark应用程序第三方jar文件依赖解决方案 (2)https://www.cnblogs.com/dinghong-jo/p/78 ...

  2. sparkshelljarlib_spark-submit 应用程序第三方jar文件

    第一种方式:打包到jar应用程序 操作:将第三方jar文件打包到最终形成的spark应用程序jar文件中 应用场景:第三方jar文件比较小,应用的地方比较少 第二种方式:spark-submit 参数 ...

  3. 在maven项目中解决第三方jar包依赖的问题

    在maven项目中解决第三方jar包依赖的问题 参考文章: (1)在maven项目中解决第三方jar包依赖的问题 (2)https://www.cnblogs.com/nuccch/p/6122938 ...

  4. gradle第三方Jar包依赖统一管理

    1. 背景 一个gradle的工程中往往包含很多的子工程,每个子工程都有其自己的Jar包依赖.现实情况是各个子工程对jar包的引入都是比较随意的,版本号各式各样,如何统一各个子工程的版本号?统一管理第 ...

  5. java打包后的图片文件在哪,java程序打包jar文件自带图片

    今天打包jar的文件的时候发觉图片无法定位导致图片加载失败.然后把图片放在jar文件路径下,图片就可以加载了.然后尝试写一段能够使jar文件定位图片位置的方法,成功了.但是会发觉,后者比前者在载入的时 ...

  6. hadoop 依赖式job_Hadoop Job使用第三方依赖jar文件

    当我们实现了一个Hadoop MapReduce Job以后,而这个Job可能又依赖很多外部的jar文件,在Hadoop集群上运行时,有时会出现找不到具体Class的异常.出现这种问题,基本上就是在H ...

  7. maven 打包指定依赖包_Maven打包成Jar文件时依赖包的问题

    我们项目中使用到第三方的库文件,这些jar库文件并没有放到Maven中央库上,导致我们需要在项目中自己配置使用.我们的两三个开发人员对Java都是很熟,因此在使用中遇到了一些问题,表现在:在本地中引入 ...

  8. android支持第三方jar包,以及Eclipse如何导入jar包

    2019独角兽企业重金招聘Python工程师标准>>> 通常我们进行android开发的时候运用到了两种格式的jar包文件. 1.在eclipse环境下,引入第三方jar包,指的是通 ...

  9. Hadoop中通过ToolRunner和Configured实现直接读取命令行动态出入reduce task数量,jar文件等...

    一个典型的实现Tool的程序: /** MyApp 需要从命令行读取参数,用户输入命令如, $bin/hadoop jar MyApp.jar -archives test.tgz  arg1 arg ...

最新文章

  1. 判定设备_盐雾腐蚀试验判定标准
  2. 重磅!NVIDIA开源C++标准库:Libcu++
  3. Oracle 11G RAC:生产环境下架构
  4. Object构造函数的方法
  5. Angular基础(五) 内建指令和表单
  6. 保护亿万数据安全,Spring有“声明式事务”绝招
  7. Linux x86主机运行天数是是24.8的倍数都有可能引发oracle bug及解决方法
  8. 【Makefile】Makefile编写规则
  9. Git学习系列15 HEAD ORIG_HEAD FETCH_HEAD detached HEAD
  10. (干货分享)如何下载网站上的视频
  11. 微型计算机第十一章答案,计算机习题答案总.docx
  12. 大数据时代背景下的商标注册风险及应对方法
  13. 【时间序列】时间序列曲线平滑+预测(LSTM)
  14. 中层管理者如何提高管理能力?
  15. Google Play In-app Billing
  16. 旧金山大学网站的红黑树演示动画,益于理解红黑树
  17. 2018总结----对共享单车的思考
  18. workflow了解
  19. android 寺库trytry_人民日报中秋福利 寺库trytry红包刷爆朋友圈背后的秘密
  20. c语言实现作业调度算法实验报告,时间片轮转调度算法的实验报告.doc

热门文章

  1. Leansoft再发招贤令:面试官徐磊有话讲 | IDCF
  2. 程序员修神之路--它可能是分布式系统中最重要的枢纽
  3. ASP.NET Core+Quartz.Net实现web定时任务
  4. .NET Core开发实战(第26课:工程结构概览:定义应用分层及依赖关系)--学习笔记...
  5. 开源WPF控件库MaterialDesignInXAML推荐
  6. 你必须知道的容器监控 (2) cAdvisor
  7. .NET Core跨平台部署于Docker(Centos)- 视频教程
  8. 基于C#实现的轻量级多线程队列
  9. .NET西安社区 [拥抱开源,又见 .NET] 第二次活动简报
  10. Blazor 0.5.0 升级及新特性介绍