SparkSQL与Hive整合(Spark On Hive)

这篇具有很好参考价值的文章主要介绍了SparkSQL与Hive整合(Spark On Hive)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. Hive的元数据服务

hive metastore元数据服务用来存储元数据,所谓元数据,即hive中库、表、字段、字段所属表、表所属库、表的数据所在目录及数据分区信息。元数据默认存储在hive自带的Derby数据库。在内嵌模式和本地模式下,metastore嵌入在主hive server进程中。但在远程模式下,metastore 和 hive server是两个单独的服务,都由各自的进程管理

metastore服务独立出来之后,1个或多个客户端在配置文件中添加metastore的地址,就可以同时连接metastore服务,metastore再去连接MySQL数据库来存取元数据。

hiveserver服务主要目的 接收 SQL, 将SQL进行编译 优化 执行, 将SQL翻译为MR程序, 然后提交Yarn运行

BeeLine客户端向HiveServer服务提交SQL语句,HiveServer服务连接MetaStore获取元数据后,将SQL编译为MR程序执行
SparkSQL与Hive整合(Spark On Hive),数据计算与分析组件,hive,spark,hadoop,大数据
SparkSQL同样适用,SparkSQL语句提交给Spark集群,Spark执行引擎查询metastore服务获取元数据,将SparkSQL翻译为Spark RDD执行

一旦替换掉HiveServer2, 让Spark 和Hive的metastore进行集成, Spark的schema元数据信息就可以交给metastore统一管理

2.配置说明

2.1 spark添加metastore地址

spark/conf添加hive-site.xml,可以拷贝 hive/conf/hive-site.xml
主要添加配置:

<!-- 远程模式部署metastore metastore地址 -->
<property>
    <name>hive.metastore.uris</name>
    <value>thrift://node3:9083</value>
</property>

metastore服务 和 hiveserver2服务,我都启动在了node3机器,全部配置如下:

<configuration>
    <!-- 存储元数据mysql相关配置 -->
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://node3:3306/hive3?createDatabaseIfNotExist=true&amp;useSSL=false</value>
    </property>

    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>
    </property>

    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
    </property>

    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>123456</value>
    </property>

    <!-- H2S运行绑定host -->
    <property>
        <name>hive.server2.thrift.bind.host</name>
        <value>node3</value>
    </property>

    <!-- 远程模式部署metastore metastore地址 -->
    <property>
        <name>hive.metastore.uris</name>
        <value>thrift://node3:9083</value>
    </property>

    <!-- 关闭元数据存储授权  -->
    <property>
        <name>hive.metastore.event.db.notification.api.auth</name>
        <value>false</value>
     </property>
</configuration>

2.2 MySQL驱动包

MySQL的连接的驱动jar包拷贝到本地spark的jars目录
cd /export/server/hive/lib/
cp mysql-connector-java-5.1.32.jar /export/server/spark/jars/
版本号5.1.32可适当替换

spark on yarn运行模式下:需要上传一份到HDFS
hadoop dfs -put mysql-connector-java-5.1.32.jar /spark/jars

2.3 启动 Hadoop集群 和 Hive的metastore的服务

start-all.sh
nohup /export/server/hive/bin/hive --service metastore 2>&1 &

2.4 测试

  • cd /export/server/spark/bin/
    ./spark-sql --master local[*]

  • ./hive

进入hive客户端, 然后在hive的客户端上, 创建库和表, 以及添加数据, 在spark-sql客户端上可以看到,。

同样,在spark-sql中创建库和表, 以及添加数据, 在hive的客户端也可以看到
说明SparkSQL和Hive集成成功文章来源地址https://www.toymoban.com/news/detail-526852.html

2.5 SparkSQL集成Hive在代码中实现

# 1.创建Spark SQL的核心对象: SparkSession
    # .enableHiveSupport() 开启和HIVE整合
    # spark.sql.shuffle.partitions 宽依赖运行并行度
    # hive.metastore.uris 元数据服务地址
    # spark.sql.warehouse.dir spark数据存储目录和Hive保持一致
    spark = SparkSession.builder \
        .appName('spark on hive') \
        .master('local[*]') \
        .config('spark.sql.shuffle.partitions', 4) \
        .config('hive.metastore.uris', 'thrift://node3.itcast.cn:9083') \
        .config('spark.sql.warehouse.dir', 'hdfs://node1:8020/user/hive/warehouse') \
        .enableHiveSupport() \
        .getOrCreate()

    # 2. 执行相关的操作
    spark.sql("select * from pyspark_hive.stu; ").show()

    # 3. 释放资源
    spark.stop()

到了这里,关于SparkSQL与Hive整合(Spark On Hive)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【项目实战】基于Hadoop大数据电商平台用户行为分析与可视化系统Hive、Spark计算机程序开发

    注意:该项目只展示部分功能,如需了解,评论区咨询即可。 在当今数字化时代,电商行业成为全球商业生态系统的关键组成部分,电商平台已经深入各行各业,影响了人们的购物方式和消费习惯。随着互联网技术的不断发展,电商平台产生了大量的用户数据,包括点击、购

    2024年02月04日
    浏览(118)
  • 了解hive on spark和spark on hive

            大数据刚出来的时候,并不是很完善。发展的不是很快,尤其是在计算服务上,当时使用的是第一代mr计算引擎,相对来说计算并不是那么快。让大数据快速发展的是2009年伯克利大学诞生的spark,并在2013年成为Aparch的顶级开源项目。使大数据发展比较迅速、但是随着

    2024年02月14日
    浏览(67)
  • 13.108.Spark 优化、Spark优化与hive的区别、SparkSQL启动参数调优、四川任务优化实践:执行效率提升50%以上

    13.108.Spark 优化 1.1.25.Spark优化与hive的区别 1.1.26.SparkSQL启动参数调优 1.1.27.四川任务优化实践:执行效率提升50%以上 1.1.25.Spark优化与hive的区别 先理解spark与mapreduce的本质区别,算子之间(map和reduce之间多了依赖关系判断,即宽依赖和窄依赖。) 优化的思路和hive基本一致,比较

    2024年02月10日
    浏览(50)
  • hive on spark hql 插入数据报错 Failed to create Spark client for Spark session Error code 30041

    离线数仓 hive on spark 模式,hive 客户端 sql 插入数据报错 Failed to execute spark task, with exception \\\'org.apache.hadoop.hive.ql.metadata.HiveException(Failed to create Spark client for Spark session 50cec71c-2636-4d99-8de2-a580ae3f1c58)\\\' FAILED: Execution Error, return code 30041 from org.apache.hadoop.hive.ql.exec.spark.SparkTask. Failed t

    2024年02月14日
    浏览(53)
  • spark on hive

    注意:需要提前搭建好hive,并对hive进行配置。并将spark配置成为spark on yarn模式。 提前创建好启动日志存放路径 mkdir $HIVE_HOME/logStart 注意:其实还是hive的thirftserver服务,同时还需要启动spark集群 连接thirftserver服务后,就可以使用hive的元数据(hive在hdfs中的数据库和表),并且

    2024年02月07日
    浏览(46)
  • Hive on Spark (1)

    在 Apache Spark 中,Executor 是分布式计算框架中的一个关键组件,用于 在集群中执行具体的计算任务 。每个 Executor 都在独立的 JVM 进程中运行,可以在集群的多台机器上同时存在。Executors 负责实际的数据处理、计算和任务执行,它们执行来自 Driver 的指令,并将计算结果返回给

    2024年02月12日
    浏览(43)
  • Hive on Spark环境搭建

    Hive 引擎包括:默认 MR、tez、spark 最底层的引擎就是MR (Mapreduce)无需配置,Hive运行自带 Hive on Spark:Hive 既作为存储元数据又负责 SQL 的解析优化,语法是 HQL 语法,执行引擎变成了 Spark,Spark 负责采用 RDD 执行。 Spark on Hive : Hive 只作为存储元数据,Spark 负责 SQL 解析优化,语

    2024年02月13日
    浏览(48)
  • hive on spark内存模型

    hive on spark的调优,那必然涉及到这一系列框架的内存模型。本章就是来讲一下这些框架的内存模型。 hive on spark的任务,从开始到结束。总共涉及了3个框架。分别是:yarn、hive、spark 其中,hive只是一个客户端的角色。就不涉及任务运行时的内存。所以这里主要讲的yarn和spark的

    2024年04月16日
    浏览(42)
  • Spark On Hive原理和配置

    目录 一、Spark On Hive原理         (1)为什么要让Spark On Hive? 二、MySQL安装配置(root用户)         (1)安装MySQL         (2)启动MySQL设置开机启动         (3)修改MySQL密码 三、Hive安装配置         (1)修改Hadoop的core-site.xml         (2)创建hive-site.xml        

    2024年02月08日
    浏览(51)
  • Spark on Hive及 Spark SQL的运行机制

    代码中集成Hive: Spark SQL底层依然运行的是Spark RDD的程序,所以说Spark RDD程序的运行的流程,在Spark SQL中依然是存在的,只不过在这个流程的基础上增加了从SQL翻译为RDD的过程 Spark SQL的运行机制,其实就是在描述如何将Spark SQL翻译为RDD程序 Catalyst内部具体的执行流程: 专业术

    2024年01月23日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包