SparkSQL(2):Spark应用依赖第三方jar文件解决方案

68 篇文章 0 订阅
16 篇文章 1 订阅

一、实现功能

spark运行依赖jar包添加方式。

二、方法

1. 本地jar包:

(1)方法:使用参数--jars添加本地的第三方jar文件,可以给定多个,使用逗号分隔

bin/spark-shell --jars /opt/modules/hive-1.2.1/lib/mysql-connector-java-5.1.27-bin.jar,/opt/modules/hive-1.2.1/lib/derby-10.10.2.0.jar

(2)适用情况:

要求jar文件在driver和client的机器上存在,适合依赖比较少的情况
(3) 查看:可以在4040页面查看环境,拉到最低端,看到user add jars,可以复制链接下载
          在http://bigdata.hadoop.com:4041/environment/页面,最下面看到 :
                结果:
                spark://192.168.31.3:50950/jars/derby-10.10.2.0.jar    Added By User
                spark://192.168.31.3:50950/jars/mysql-connector-java-5.1.27-bin.jar    Added By User

            
2. maven源,从maven源下载jar包

(1)方法:使用参数--packages添加maven中央库中的第三方jar文件,可以给定多个,使用逗号分隔
        这种方式可以通过--repositories的方式添加依赖仓库,不写就是用默认的

 bin/spark-shell --packages mysql:mysql-connector-java:5.1.27

(2)注意:
        下载的jar文件会保存到当前用户的根目录下的.ivy2文件夹的jars文件夹中,eg:/home/hadoop/.ivy2/jars;适合依赖比较少的情况
        例如下载位置:/root/.ivy2/jars/mysql_mysql-connector-java-5.1.27.jar
 (3)查看:http://bigdata.hadoop.com:4041/environment/网页最下面
                spark://192.168.31.3:52185/jars/mysql_mysql-connector-java-5.1.27.jar    Added By User
                        

3. 使用SPARK_CLASSPATH环境变量给定jar文件的位置信息

注意:要求所有可以执行的节点都需要进行该配置,如果是spark on yarn,要求所有机器上有对应文件夹的jar文件
(1)创建文件夹

mkdir -p external_jars
cp /opt/modules/hive-1.2.1/lib/mysql-connector-java-5.1.27-bin.jar ./external_jars/
cp /opt/modules/hive-1.2.1/lib/derby-10.10.2.0.jar ./external_jars/

(2)修改配置文件conf/spark-env.sh

vim conf/spark-env.sh
SPARK_CLASSPATH=/opt/modules/spark-2.1.0-bin-2.7.3/external_jars/*
        

(3)启动

bin/spark-shell

(4)查看结果
        http://bigdata.hadoop.com:4041/environment/网页最下面
        
        /opt/modules/spark-2.1.0-bin-2.7.3/external_jars/derby-10.10.2.0.jar    System Classpath
        /opt/modules/spark-2.1.0-bin-2.7.3/external_jars/mysql-connector-java-5.1.27-bin.jar    System Classpath

          
4.如果是Spark on yarn cluster 第三方jar文件驱动解决方案(推荐):

(1)方法:将第三方的jar文件copy到${HADOOP_HOME}/share/hadoop/common/lib文件夹中或者${HADOOP_HOME}/share/hadoop/yarn/lib文件夹中
注意:使用spark-sql和spark-shell其实底层都是spark-submit,能配置的参数几乎都是一样的

5.将需要的jar包上传到hdfs上,然后配置spark的spark.yarn.jar参数

(1)hdfs上生成目录:/spark/jars
bin/hdfs dfs -mkdir /spark/jars

(2)设置spark的配置参数spark-defaults.conf,添加
spark.yarn.jar hdfs://bigdata-01:8020/spark/jars

(3)上传文件到hdfs://bigdata-01:8020/spark/jars

(4)spark-on-yarn在yarn上跑
bin/spark-shell --master yarn

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值