spark-3.1.2兼容多版本hive

2023-11-19

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

spark-3.1.2兼容多版本hive 的相关文章

随机推荐

  • eclipse 环境配置第一个webapp的发布 及jsp代码的执行

    GBK 所有中文操作系统默认的编码 UTF 8 支持识别各个国家的字符 但这样 之前的代码如果用的是GBK编码 则会变成乱码 我们可以建一个新的工作区 新建一个文件夹 存放workspace 选择workspace位置后 等待重启 以后再建
  • 手把手教你进行APP数据埋点

    经过大半年的努力 产品终于开始趋向稳定 之前的版本一直在探索 需求经常改动 没时间系统进行埋点 随着产品的稳定以及工作的深入 越发认识到数据的重要性 所以开始着手数据埋点相关事项 这次亲历了产品 APP 从零开始进行数据埋点的过程 分享出来
  • 【数据分析与可视化】Seaborn库简介及风格设置详解(图文解释 超详细)

    需要源码和PPT请点赞关注收藏后评论区留言私信 一 Seaborn简介 Matplotlib绘图基本模仿MATLAB绘图库 其绘图风格和MATLAB类似 由于MATLAB绘图风格偏古典 因此 Python开源社区开发了Seaborn绘图模块
  • 神经网络权重是什么意思,神经网络权值和阈值

    BP神经网络中初始权值和阈值的设定 1 首先需要了解BP神经网络是一种多层前馈网络 2 以看一下在matlab中BP神经网络的训练函数 有梯度下降法traingd 弹性梯度下降法trainrp 自适应lr梯度下降法traingda等 3 在
  • 深度学习-算法的鲁棒性与稳定性解析

    文章与视频资源多平台更新 微信公众号 知乎 B站 头条 AI研习图书馆 深度学习 大数据 IT编程知识与资源分享 欢迎关注 共同进步 1 引言 鲁棒 的英文是robustness 中文译为强健 稳健 所以说算法的鲁棒性直白点说就是健壮的 稳
  • 【硬刚大数据之学习路线篇】2021年从零到大数据专家的学习指南(全面升级版)

    欢迎关注博客主页 https blog csdn net u013411339 本文由 王知无 原创 首发于 CSDN博客 本文首发CSDN论坛 未经过官方和本人允许 严禁转载 欢迎点赞 收藏 留言 欢迎留言交流 声明 本篇博客在我之前发表
  • Kong网关 入门安装与配置

    简介 Kong 是由Mashape公司开源的 基于Nginx的API gateway 特点 可扩展 支持分布式 模块化 功能 授权 日志 ip限制 限流 api 统计分析 存在商业插件Galileo等 也可自己研发 请求转化 跨域 CORS
  • java.lang.StringIndexOutOfBoundsException: String index out of range: 22

    报错 in thread main java lang StringIndexOutOfBoundsException String index out of range 22 原因 for int i 0 i lt 255 i 输入的字符
  • element ui的el-tree多选树(复选框)父子节点关联不关联的问题,选中当前节点,他的子节点和父节点是否被选中,非常详细

    element ui的el tree多选树 复选框 父子节点关联不关联的问题 选中当前节点 他的子节点和父节点是否被选中 非常详细 属性check strictly 官方文档提供属性check strictly 在显示复选框的情况下 是否严
  • SQL Server2012 安装方法详解

    欢迎大家关注我的公众号 添加我为好友 首先要找到自己下载好的安装包 并且保持网络畅通 最近有不少细心的小伙伴反应安装包有问题 我这里进行了一下更新 链接 https pan baidu com s 1bB WS zmHy ow34mU ET
  • scss的基本语法的使用

    scss 1 声明变量 声明变量符 变量名称 变量值 eg width300 300px 2 变量调用 width300 300px 声明 main width width300 调用 3 局部变量和全局变量 定义在局部的变量不会影响其他的
  • 关于不重启Tomcat自动加载改变的class文件

    修改server xml 在Host标签下加入以下配置
  • cmake 怎么设定 prefix ?

    cmake D CMAKE INSTALL PREFIX usr
  • 分页节点

    动态调度技术 分页数据库 osg PageLOD 动态调度技术 如果数据庞大 那么是不可能一次性全部载入内存的 因此需要动态调度技术 动态调度技术 在显示当前视域中的场景元素的同时 预判下一步可能载入的数据 以及那些短时间内不会被看到的数据
  • win11共享打印机无法连接怎么办

    很多小伙伴都将电脑更新升级成Win11系统 当我们使用多台电脑却只有一台打印机时 就需要共享打印机却出现了Win11共享打印机无法连接的情况 遇到这种问题应该怎么解决呢 下面小编就给大家详细介绍一下Win11共享打印机无法连接的解决方法 大
  • hexo tags-标签设置-aloha

    打开博客界面里面的 config yml进行配置 打开如下 找到类似于下面这些的代码行 Directory source dir source public dir public tag dir tags 标签 archive dir ar
  • MySQL-group_concat()

    创建表格 CREATE TABLE dept emp emp no int 11 NOT NULL dept no char 4 NOT NULL from date date NOT NULL to date date NOT NULL
  • expandableListview实现侧滑删除

    本文地址 http blog csdn net xiehao 95 article details 44628491 使用swipelistview实现侧滑删除这样Demo已经很普及了 但是项目需要 expandableListview的i
  • 复习整理 Mask R-CNN

    理解Mask R CNN 文章目录 理解Mask R CNN 前言 一 简介 基础点 名词解释 简单复习 前言 为了综合复习 Mask R CNN 写一个博客 简言之 物体检测 产生一个切割mask 识别 和FasterR CNN区别 能生
  • spark-3.1.2兼容多版本hive

    2 3 9版本Hive的支持 直接在实例化SparkSession时 启用hive支持即可 例如 val spark SparkSession builder appName Spark Hive Example config spark