我是靠谱客的博主 苗条长颈鹿,最近开发中收集的这篇文章主要介绍spark-3.1.2兼容多版本hive2.3.9版本Hive的支持CDH版本Hive(2.1.1)3.1.2版本的Hive参考,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

2.3.9版本Hive的支持

直接在实例化SparkSession时,启用hive支持即可
例如:

val spark = SparkSession
      .builder()
      .appName("Spark Hive Example")
      .config("spark.sql.warehouse.dir", warehouseLocation)
      .enableHiveSupport()
      .getOrCreate()

CDH版本Hive(2.1.1)

需要配置以下属性:
config(“spark.sql.hive.metastore.version”, “2.1.1”)
config(“spark.sql.hive.metastore.jars”, “maven”)
config(“spark.sql.hive.metastore.jars.path”, “org.apache.hive:hive-metastore:2.1.1”)

例如:

val sparkConf = new SparkConf().setMaster("local[*]").setAppName("hive")
    val spark = SparkSession.builder()
      // cdh hive 2.1.1
      .config("spark.sql.hive.metastore.version", "2.1.1")
      .config("spark.sql.hive.metastore.jars", "maven")
      .config("spark.sql.hive.metastore.jars.path", "org.apache.hive:hive-metastore:2.1.1")
      .config("hive.metastore.uris", "thrift://10.167.2.5:9083")
      .config(sparkConf).
      enableHiveSupport().
      getOrCreate()

    spark.sql("show tables;").show()

先不要运行,找到ShutdownHookManager类,在这个类的logInfo("Deleting directory " + dirPath)附近打断点,阻止spark程序运行完后删除目录

打完断点后可以执行程序了,程序会在断点处阻塞住,我们通过控制台的日志信息,找到IsolatedClientLoader的提示信息,比如:

22/05/31 23:07:03 INFO IsolatedClientLoader: Downloaded metastore jars to /private/var/folders/ng/8nk0npb11v1gt6q9tj78085r0000gn/T/hive-v2_1-11b899b2-508d-4d0a-bb38-df4b193460ac

我们找到这个目录,这个目录就是cdh-2.1.1版本hive的依赖包,我们拷贝出来

更改刚才的属性,将.config(“spark.sql.hive.metastore.jars”, “maven”)改为.config(“spark.sql.hive.metastore.jars”, “path”),
将.config(“spark.sql.hive.metastore.jars.path”, “org.apache.hive:hive-metastore:2.1.1”)改为config(“spark.sql.hive.metastore.jars.path”,“拷贝出来的目录中的jar文件,使用file:///path的方式,使用逗号连接”)

再次运行就不会再进行下载了

3.1.2版本的Hive

使用方式类似CDH版本的hive(2.1.1)
.config(“spark.sql.hive.metastore.version”, “3.1.2”)

参考

https://spark.apache.org/docs/3.1.2/sql-data-sources-hive-tables.html

最后

以上就是苗条长颈鹿为你收集整理的spark-3.1.2兼容多版本hive2.3.9版本Hive的支持CDH版本Hive(2.1.1)3.1.2版本的Hive参考的全部内容,希望文章能够帮你解决spark-3.1.2兼容多版本hive2.3.9版本Hive的支持CDH版本Hive(2.1.1)3.1.2版本的Hive参考所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部