spark on hive的实现

文章讲述了如何配置Spark连接MetaStore,包括在spark的conf目录下添加hive-default.xml和hive-site.xml文件,设置hive.metastore.uris等参数,上传正确的MySQL驱动jar包,构建SparkSession时添加配置,以及启动Thrift服务器的命令。

原理图

在这里插入图片描述

配置原理

  • MetaStore需要存在并开启
  • Spark知道MetaSpark在哪里(ip,端口)

配置具体步骤

进入spark的conf目录,添加hive-default.xml

<configuration>
<property>
     <name>hive.metastore.warehouse.dir</name>
     <value>/user/hive/warehouse</value>
</property>
<property>
     <name>hive.metastore.uris</name>
     <value>thrift://node3:9083</value>
</property>
</configuration>

上传mysql的驱动jar包到spark的jars目录

  • 注意版本对应,5.7和8.0对应的jar包不一样

编辑hive的配置文件 hive-site.xml

<property>
     <name>hive.metastore.uris</name>
     <value>thrift://node3:9083</value>
</property>

构建seesion对象时添加配置

if __name__ == '__main__':
    spark = SparkSession.builder.\
        appName('test').\
        master('local[*]').\
        config('spark.sql.shuffle.partitions',2).\
        config('spark.sql.warehouse.dir','hdfs://node1:9001/user/hive/warehouse').\
        config('hive.metastore.uris','thrift://node3:9083').\
        enableHiveSupport().\
        getOrCreate()

    sc = spark.sparkContext
  

启动spark的第三方连接服务

/export/server/spark/sbin/start-thriftserver.sh --hiveconf hive.server2.thrift.port=10000 --hiveconf hive.server2.thrift.bind.host=node1 --master local[*]

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值