SparkApplication依赖第三方jar文件解决方式

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u012893747/article/details/78718053

1.将第三方的jar文件打包到最终形成的应用的jar文件中

使用的场景为:第三方jar文件比较小,可能会进行改动的情况下

2.使用参数 –jars给定驱动

使用场景为:jar文件比较小,依赖于改jar文件的应用比较少
操作命令为:
    bin/spark-shell --jars /opt/cdh-5.3.6/hive/lib/mysql-connector-java-5.1.27-bin.jar,/opt/cdh-5.3.6/hive/lib/derby-10.10.1.1.jar

 用户提交应用的时候使用--jars参数给定,回在driver运行的jvm中启动一个socket进程,提供jar文件的一个下载功能,所以这种方式不要求所有机器上均有第三方的jar文件,只要求jar文件位于使用spark-submit提交应用的机器上有这个jar文件即可

3.使用SPARK_CLASSPATH来设置第三方依赖包

使用场景:jar文件在spark应用中比较多
操作:在spark目录下创建一个external_jars文件夹,然后将jar复制到这个文件夹中,然后配置SPARK_CLASSPATH
     cd /opt/cdh-5.3.6/spark
     mkdir external_jars
     cp /opt/cdh-5.3.6/hive/lib/mysql-connector-java-5.1.27-bin.jar external_jars/
     cp /opt/cdh-5.3.6/hive/lib/derby-10.10.1.1.jar external_jars/
     vim conf/spark-env.sh
   添加内容如下:
SPARK_CLASSPATH=/opt/cdh-5.3.6/spark/external_jars/*

要求spark应用运行的所有机器上均存在你添加的这些jar文件

4.hadoop依赖第三方jar文件解决方式

hadoop依赖jar解决方案和spark解决方案基本类似,
    第一种和spark完全一样
    第二种将jars改为libjars
    第三种修改HADOOP_CLASSPATH
展开阅读全文

没有更多推荐了,返回首页