Spark On Hive原理和配置

这篇具有很好参考价值的文章主要介绍了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

        (3)修改配置文件hive-env.sh

        (4)上传mysql连接驱动

        (5)初始化元数据 (Hadoop集群启动后)      

        (6)创建logs目录,启动元数据服务

        (7)启动Hive shell

四、Spark On Hive配置

        (1)创建hive-site.xml(spark/conf目录)

        (2)放置MySQL驱动包

        (3)查看hive的hive-site.xml配置

        (4)启动hive的MetaStore服务

        (5)Spark On Hive测试

        (6)Pycharm-spark代码连接测试


一、Spark On Hive原理

        (1)为什么要让Spark On Hive?

        对于Spark来说,自身是一个执行引擎。但是Spark自己没有元数据管理功能,当我们执行: SELECT * FROM person WHERE age > 10的时候, Spark完全有能力将SQL变成RDD提交。

        但是问题是,Person的数据在哪? Person有哪些字段?字段啥类型? Spark完全不知道了。不知道这些东西,如何翻译RDD运行。在SparkSQL代码中可以写SQL那是因为,表是来自DataFrame注册的。 DataFrame中有数据,有字段,有类型,足够Spark用来翻译RDD用.。如果以不写代码的角度来看,SELECT * FROM person WHERE age > 10 spark无法翻译,因为没有元数据。

        解决方案:

        Spark提高执行引擎能力,Hive的MetaStore提供元数据管理功能。选择Hive的原因是使用Hive的用户数量多。

Spark On Hive原理和配置,spark,hive,大数据
Hive与SparkOnHive流程示意图

二、MySQL安装配置(root用户)

        (1)安装MySQL

        命令:

        rpm  --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

        rpm -Uvh https://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm

        yum -y install mysql-community-server

Spark On Hive原理和配置,spark,hive,大数据

Spark On Hive原理和配置,spark,hive,大数据

        (2)启动MySQL设置开机启动

        命令:

        systemctl start mysqld

        systemctl enable mysqld

Spark On Hive原理和配置,spark,hive,大数据

        (3)修改MySQL密码

        命令:

        查看密码:grep 'temporary password' /var/log/mysqld.log

        修改密码:

mysql -uroot -p  #登录MySQL,密码是刚刚查看的临时密码

set global validate_password_policy=LOW;   #密码安全级别低

set  global  validate_password_length=4;  #密码长度最低四位

ALTER USER 'root'@'localhost' IDENTIFIED BY '密码'; # 设置用户和密码
# 配置远程登陆用户以及密码
grant all privileges on *.* to root@"%" identified by 'root' with grant option;

flush privileges;

Spark On Hive原理和配置,spark,hive,大数据

三、Hive安装配置

        (1)修改Hadoop的core-site.xml

        添加内容如下:

     <property>
            <name>hadoop.proxyuser.noregrets.hosts</name>
            <value>*</value>
    </property>
    <property>
            <name>hadoop.proxyuser.noregrets.groups</name>
            <value>*</value>
    </property>

Spark On Hive原理和配置,spark,hive,大数据

        上传解压安装Hive压缩包并构建软连接
        命令:

        解压:tar -zvxf apache-hive-3.1.3-bin-tar-gz -C /export/servers

        构建软连接:ln -s /export/servers/apache-hive-3.1.3-bin/ /export/servers/hive

Spark On Hive原理和配置,spark,hive,大数据

        (2)创建hive-site.xml

        命令:

        cd /export/servers/hive/conf

        vim hive-site.xml

        添加内容如下:

<configuration>

        <!-- 存储元数据mysql相关配置 -->

        <property>
            <name>javax.jdo.option.ConnectionURL</name>
            <value>jdbc:mysql://pyspark01:3306/hive?createDatabaseIfNotExist=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8</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>root</value>

        </property>

        <!-- H2S运行绑定host -->

        <property>

                <name>hive.server2.thrift.bind.host</name>

                <value>pyspark01</value>

        </property>

        <!-- 远程模式部署metastore metastore地址 -->

        <property>

                <name>hive.metastore.uris</name>

                <value>thrift://pyspark01:9083</value>

        </property>

        <!-- 关闭元数据存储授权 -->

        <property>

                <name>hive.metastore.event.db.notification.api.auth</name>

                <value>false</value>

        </property>

</configuration>

Spark On Hive原理和配置,spark,hive,大数据

Spark On Hive原理和配置,spark,hive,大数据

        (3)修改配置文件hive-env.sh

        命令:

        cd /export/servers/hive/conf

        cp hive-env.sh.template hive-env.sh

        vim hive-env.sh(修改第48行内容)

        内容如下:

        export HADOOP_HOME=/export/servers/hadoop
        export HIVE_CONF_DIR=/export/servers/hive/conf
        export HIVE_AUX_JARS_PATH=/export/servers/hive/lib

Spark On Hive原理和配置,spark,hive,大数据

        (4)上传mysql连接驱动

链接:https://pan.baidu.com/s/1MJ9QBsE3h1FAxuB3a4iyVw?pwd=1111 
提取码:1111 

        MySQL5使用5的连接版本,MySQL8使用8的连接版本。
Spark On Hive原理和配置,spark,hive,大数据

        (5)初始化元数据 (Hadoop集群启动后)      

        命令:

        登录数据库:

        mysql -uroot -p

        CREATE DATABASE hive CHARSET UTF8;        #建表

Spark On Hive原理和配置,spark,hive,大数据

Spark On Hive原理和配置,spark,hive,大数据

        cd /export/server/hive/

        bin/schematool -initSchema -dbType mysql -verbos

        #初始化成功会在mysql中创建74张表

Spark On Hive原理和配置,spark,hive,大数据

Spark On Hive原理和配置,spark,hive,大数据

        (6)创建logs目录,启动元数据服务

        命令:

        创建文件夹:mkdir logs

        启动元数据服务:nohup bin/hive --service metastore >> logs/metastore.log 2>&1 &

Spark On Hive原理和配置,spark,hive,大数据

Spark On Hive原理和配置,spark,hive,大数据

        (7)启动Hive shell

        命令:bin/hive(配置环境变量可直接使用hive)

Spark On Hive原理和配置,spark,hive,大数据

四、Spark On Hive配置

        (1)创建hive-site.xml(spark/conf目录)

        添加内容如下:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!--告知Spark创建表存到哪里-->
        <property>
                <name>hive.metastore.warehouse.dir</name>
                <value>/user/hive/warehouse</value>
        </property>
        <property>
                <name>hive.metastore.local</name>
                <value>false</value>
        </property>
<!--告知Spark Hive的MetaStore在哪-->
        <property>
                <name>hive.metastore.uris</name>
                <value>thrift://pyspark01:9083</value>
        </property>
</configuration>
Spark On Hive原理和配置,spark,hive,大数据

        (2)放置MySQL驱动包

Spark On Hive原理和配置,spark,hive,大数据

        (3)查看hive的hive-site.xml配置

        确保有如下配置:

Spark On Hive原理和配置,spark,hive,大数据

        (4)启动hive的MetaStore服务

        命令:

        nohup bin/hive --service metastore >> logs/metastore.log 2>&1 &

Spark On Hive原理和配置,spark,hive,大数据

        (5)Spark On Hive测试

        ①创建表sparkonhive

        命令:

        在spark目录下:

        bin/spark         

        spark.sql('create table sparkonhive(id int)' )

Spark On Hive原理和配置,spark,hive,大数据

        ②进入查看查看

        命令:

        hive目录:

        bin/hive(配置过环境变量可直接使用hive)

Spark On Hive原理和配置,spark,hive,大数据

        (6)Pycharm-spark代码连接测试

        在Linux的sparkSQl终端或者hive终端创建学生表,然后使用spark代码查询。

        命令:

        create table student(id int, name string);

        insert into student values(1,'张三'),(2, '李四');

Spark On Hive原理和配置,spark,hive,大数据

        使用spark代码查询

        在Spark代码中加上如下内容

Spark On Hive原理和配置,spark,hive,大数据

# cording:utf8
import string
from pyspark.sql import SparkSession
import pyspark.sql.functions as F
from pyspark.sql.types import IntegerType, StringType, StructType, ArrayType
if __name__ == '__main__':
    spark = SparkSession.builder.\
        appName('udf_define').\
        master('local[*]').\
        config('spark.sql.shuffle.partitions', 2).\
        config('spark.sql.warehouse.dir', 'hdfs://pyspark01:8020/user/hive/warehouse').\
        config('hive.metastore.uris', 'thrift://pyspark01:9083').\
        enableHiveSupport().\
        getOrCreate()
    sc = spark.sparkContext

    spark.sql('''
        SELECT * FROM student
    ''').show()

Spark On Hive原理和配置,spark,hive,大数据文章来源地址https://www.toymoban.com/news/detail-717309.html

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

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

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

相关文章

  • 了解hive on spark和spark on hive

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

    2024年02月14日
    浏览(68)
  • Hadoop-HA-Hive-on-Spark 4台虚拟机安装配置文件

    apache-hive-3.1.3-bin.tar spark-3.0.0-bin-hadoop3.2.tgz hadoop-3.1.3.tar.gz 在hdfs上新建 spark-history(设置权限777),spark-jars文件夹 上传jar到hdfs 链接hadoop中的文件 ln -s 源文件名 新文件名 链接hive中的文件 ln -s 源文件名 新文件名 链接hadoop中的文件 ln -s 源文件名 新文件名

    2024年02月07日
    浏览(44)
  • spark on hive

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

    2024年02月07日
    浏览(48)
  • SparkSQL与Hive整合(Spark On Hive)

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

    2024年02月12日
    浏览(77)
  • Hive on Spark (1)

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

    2024年02月12日
    浏览(45)
  • 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日
    浏览(55)
  • 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日
    浏览(49)
  • hive on spark内存模型

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

    2024年04月16日
    浏览(42)
  • hive修改spark版本重新编译,hive3.1.3 on spark3.3.0

    我的是hive3.1.3 spark3.3.0(请先将自己的 hive on mr 搭建完场,有简单了解在搞这个) 1.下载hive源码 2. maven编译:mvn clean -DskipTests package -Pdist (idea 编译不行,能行的评论告诉我) 右键 - Git Bash idea打开项目,右键pom 添加成maven项目 修改pom中自己所需依赖的版本

    2023年04月21日
    浏览(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日
    浏览(50)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包