• 安装Hive集群


    安装Hive集群

    1 软件环境

    注:我的Hadoop环境已经安装完成。

    1.1 版本选择

    版本的兼容问题很重要!!

    软件环境版本号备注
    CentOS77.6
    JDK1.8.0
    Hadoop3.1.3hadoop-3.1.3.tar.gz
    ZooKeeper3.6.3apache-zookeeper-3.6.3-bin.tar.gz
    Hbase2.4.15hbase-2.4.15-bin.tar.gz
    Hive3.1.2apache-hive-3.1.2-bin.tar.gz

    1.2 软件下载

    # Hadoop下载地址
    https://hadoop.apache.org/release.html
    # 下载hadoop-3.1.3.tar.gz
    https://archive.apache.org/dist/hadoop/common/hadoop-3.1.3/hadoop-3.1.3.tar.gz
    
    
    # ZooKeeper下载地址
    https://zookeeper.apache.org/releases.html
    # 下载apache-zookeeper-3.6.3-bin.tar.gz
    https://dlcdn.apache.org/zookeeper/zookeeper-3.6.3/apache-zookeeper-3.6.3-bin.tar.gz
    
    
    # Hbase下载地址
    https://hbase.apache.org/downloads.html
    # 下载hbase-2.4.15-bin.tar.gz
    https://dlcdn.apache.org/hbase/2.4.15/hbase-2.4.15-bin.tar.gz
    
    
    # Hive下载地址
    https://hive.apache.org/downloads.html
    # 下载apache-hive-3.1.2-bin.tar.gz
    https://dlcdn.apache.org/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    1.3 Hadoop集群环境

    主机名HDFSYARNIP地址说明
    hadoop0DataNode、NameNodeNodeManager192.168.108.10主节点(master)
    hadoop1DataNodeNodeManager、ResourceManager192.168.108.11子节点
    hadoop2DataNode、Secondary NameNodeNodeManager192.168.108.12子节点

    2 安装Hive

    ⚠️ 注意:安装Hive集群,只需要在主节点上安装Hive和MySQL即可。

    Hive是一个数据仓库,适合做数据查询、统计和分析的查询引擎,由于Hive的执行延迟比较高,因此适用于实时性要求不高的场合,适合大数据集的批处理作业。Hive建立在HDFS的基础之上,数据都存储在HDFS上,元数据存储在MySQL上,Hive自己不存储数据。

    2.1 Hive集群

    安装目录是/opt/

    主机名HiveHDFSIP地址说明
    hadoop0Hive、MySQLDataNode、NameNode192.168.108.10主节点(master)
    hadoop1DataNode192.168.108.11子节点
    hadoop2DataNode、Secondary NameNode192.168.108.12子节点

    2.2 主节点安装MySQL5.7

    (1)安装MySQL

    # (1)查看是否已经安装MySQL
    rpm -qa | grep mysql
    
    # (2)配置镜像源
    # 安装wget
    yum install -y wget
    
    # 下载MySQL5.7镜像源
    wget http://repo.mysql.com/yum/mysql-5.7-community/el/7/x86_64/mysql57-community-release-el7-10.noarch.rpm
    # 安装镜像源
    rpm -ivh mysql57-community-release-el7-10.noarch.rpm
    
    # (3)安装MySQL5.7
    yum install -y mysql-community-server
    
    # (4)配置MySQL
    # 设置MySQL开机启动
    systemctl enable mysqld
    # 启动MySQL
    systemctl start mysqld
    # 查看MySQL状态
    systemctl status mysqld
    
    # (5)修改MySQL密码
    # 查看MySQL的临时密码
    cat /var/log/mysqld.log| grep password
    # 返回值如下
    2022-11-02T03:29:41.454891Z 1 [Note] A temporary password is generated for root@localhost: 8Re9rRD7Cq(D
    # 登录MySQL,输入临时密码
    mysql -u root -p
    
    # 修改密码
    ALTER USER USER() IDENTIFIED BY '123456#Abc';
    # 刷新权限
    FLUSH PRIVILEGES;
    
    # 出现如下问题,表示密码太简单
    # ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38

    (2)安装过程中的问题

    问题:

    源 "MySQL 5.7 Community Server" 的 GPG 密钥已安装,但是不适用于此软件包。请检查源的公钥 URL 是否配置正确。
    失败的软件包是:mysql-community-client-5.7.40-1.el7.x86_64
    GPG  密钥配置为:file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
    
    • 1
    • 2
    • 3

    解决方法

    rm /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql 
    rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
    
    • 1
    • 2

    2.3 主节点安装Hive

    (1) 解压文件

    # 先将apache-hive-3.1.2-bin.tar.gz复制到/opt目录下
    # 进入安装目录
    cd /opt
    
    # 解压文件
    tar -xzvf apache-hive-3.1.2-bin.tar.gz
    
    # 重命名文件
    mv apache-hive-3.1.2-bin hive-3.1.2
    
    # 添加环境变量
    # 编辑文件
    vim /etc/profile
    
    # 在文件中添加如下内容
    export HIVE_HOME=/opt/hive-3.1.2
    export PATH=$PATH:$HIVE_HOME/bin
    
    # 刷新环境变量
    source /etc/profile
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    (2)配置文件

    # 进入hive-3.1.2目录
    cd /opt/hive-3.1.2
    
    # 进入配置目录
    cd /opt/hive-3.1.2/conf
    
    # 创建配置文件
    touch hive-site.xml
    
    # 编辑hive-site.xml配置文件
    vim hive-site.xml
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    修改hive-site.xml文件,修改内容如下

    注意:下面相关的配置信息都可以在"hive-default.xml.template"文件中找到。

    
    
    <configuration>
        
        
        <property>
            <name>javax.jdo.option.ConnectionURLname>
            <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=truevalue>
        property>
        
        <property>
            <name>javax.jdo.option.ConnectionDriverNamename>
            <value>com.mysql.jdbc.Drivervalue>
        property>
        
        <property>
            <name>javax.jdo.option.ConnectionUserNamename>
            <value>rootvalue>
        property>
        
        <property>
            <name>javax.jdo.option.ConnectionPasswordname>
            <value>123456#Abcvalue>
        property>
    
        
        
        <property>
            <name>hive.exec.mode.local.autoname>
            <value>truevalue>
        property>
        
        <property>
            <name>hive.metastore.warehouse.dirname>
            <value>/user/hive/warehousevalue>
        property>
    
        
        <property>
            <name>hive.metastore.schema.verificationname>
            <value>falsevalue>
        property>
        
        <property>
            <name>hive.metastore.event.db.notification.api.authname>
            <value>falsevalue>
        property>
        
        <property>
            <name>hive.metastore.urisname>
            <value>thrift://hadoop0:9083value>
        property>
    
        
        <property>
            <name>hive.cli.print.current.dbname>
            <value>truevalue>
        property>
    
        
        <property>
            <name>hive.cli.print.headername>
            <value>truevalue>
        property>
    
    
        
        
        <property>
            <name>hive.server2.thrift.portname>
            <value>10000value>
        property>
        
        <property>
            <name>hive.server2.thrift.bind.hostname>
            <value>hadoop0value>
        property>
    
        
        
        <property>
            <name>hive.server2.enable.doAsname>
            <value>falsevalue>
        property>
    
    configuration>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86

    (3)添加MySQL驱动

    # 从maven仓库上下载MySQL的JDBC驱动,下载地址如下:
    https://mvnrepository.com/artifact/mysql/mysql-connector-java
    
    # 复制JDBC驱动,我用的驱动是"mysql-connector-java-8.0.23.jar"
    cp mysql-connector-java-8.0.23.jar /opt/hive-3.1.2/lib/
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2.4 初始化Hive

    # 在MySQL数据库中创建元数据库
    create database metastore;
    
    # 初始化Hive数据库,初始化结束后,MySQL数据库中的hive数据库会自动创建相关的表
    schematool -initSchema -dbType mysql -verbose
    
    # 出现下面的结果说明初始化完成
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述

    问题1

    # 出现以下错误
    # 由于Hadoop依赖的guava.jar和Hive的版本不一致,将低版本的换成高版本的,我的Hadoop中guava.jar版本较高
    com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)
    
    # Hive中的guava所在目录
    /opt/hive-3.1.2/lib
    
    # Hadoop中的guava所在目录
    /opt/hadoop-3.1.3/share/hadoop/common/lib/
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    在这里插入图片描述

    解决方法

    将Hadoop中的guava复制到Hive中的目录中即可(两个文件名稍微有点区别是没有问题的)

    # 进入opt目录下
    cd /opt
    
    # 删除“hive-3.1.2/lib”目录中的guava-19.0.jar
    rm hive-3.1.2/lib/guava-19.0.jar
    
    # 复制Hadoop中的guava
    cp hadoop-3.1.3/share/hadoop/common/lib/guava-27.0-jre.jar hive-3.1.2/lib/
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    问题2

    # 出现以下问题,可能是MySQL数据库中已经创建了hive数据库,对应配置参数中的数据库
    # 
    #      javax.jdo.option.ConnectionURL
    #      jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true
    # 
    
    Schema initialization FAILED! Metastore state would be inconsistent !!
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    解决方法

    # 删除MySQL数据库中的hive数据库
    # 进入MySQL数据库后执行以下语句
    drop database hive;
    
    • 1
    • 2
    • 3

    2.5 启动Hive

    # 在命令行中输入
    hive
    
    • 1
    • 2

    在这里插入图片描述

    2.6 Hive的简单使用

    Hive的使用方法与MySQL的使用方法基本相似。

    # 创建数据库
    create database henu;
    
    # 查看数据库的详情
    desc database henu;
    
    # 切换数据库
    use henu;
    
    # 删除数据库
    drop database henu;
    
    # 创建表
    CREATE TABLE department(
    id INT,
    name STRING
    );
    
    # 查看表
    show tables;
    
    # 插入数据
    INSERT INTO department VALUES 
    (1,'软件学院'),
    (2,'计算机学院'),
    (3,'文学院');
    
    # 查看表数据
    select * from department;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    2.7 使用Beeline CLI连接

    使用Beeline CLI连接需要修改Hadoop的配置文件。

    (1)修改Hadoop配置文件

    修改hadoop集群的hdfs-site.xml配置文件,添加如下配置信息,启用 webhdfs。

    <property>
        <name>dfs.webhdfs.enabledname>
        <value>truevalue>
    property>
    
    • 1
    • 2
    • 3
    • 4

    修改hadoop集群的core-site.xml配置文件,添加如下配置信息,设置hadoop 的代理用户

    <property>
        <name>hadoop.proxyuser.hadoop.hostsname>
        <value>*value>
    property>
    <property>
        <name>hadoop.proxyuser.hadoop.groupsname>
        <value>*value>
    property>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    在主节点上配置完成后,将配置文件复制给子节点。

    scp core-site.xml hdfs-site.xml hadoop1:/opt/hadoop-3.1.3/etc/hadoop
    scp core-site.xml hdfs-site.xml hadoop2:/opt/hadoop-3.1.3/etc/hadoop
    
    • 1
    • 2

    (2)启动hiveserver2服务

    # 启动hiveserver2,注意:启动特别慢!特别慢!!!,一般情况下”Hive Session ID“出现8个以上。
    hive --service hiveserver2 &
    
    # 启动metastore
    hive --service metastore &
    
    # 查看是否启动成功,如果出现端口号,说明启动成功,否则没有启动成功
    netstat -anp|grep 10000
    
    # 启动beeline
    beeline
    # 连接主机,不需要输入账号和密码(自定义也可以),直接按Enter即可
    !connect jdbc:hive2://hadoop0:10000
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    在这里插入图片描述

    启动成功页面

    # hiveserver2的Web界面,默认端口号是10002
    http://192.168.108.10:10002/
    
    • 1
    • 2

    在这里插入图片描述

    (3)停止metastore和hiveserver2服务

    # 查看进程
    jps
    # 返回值
    24097 NodeManager
    72344 RunJar
    22266 DataNode
    88891 RunJar
    90941 Jps
    21918 NameNode
    
    # 进程RunJar就是metastore和hiveserver2服务
    # 停止服务
    kill 72344
    kill 88891
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
  • 相关阅读:
    手摸手入门Springboot2.7集成Swagger2.9.2
    找零钱的贪心算法
    致敬技术与创新·20231024程序员节
    Flink Operator 使用指南 之 Flink Operator安装
    量子AI公司SandboxAQ为加速量子安全解决方案落地宣布收购Cryptosens
    JumpServer 堡垒机 v2.25.0 发布
    ts3.接口和对象类型
    spring源码-spring启动(待完善)
    【Tomcat目录详解】关于Tomcat你还需要了解的详细内容
    枚举和注解02:enum关键字实现枚举类
  • 原文地址:https://blog.csdn.net/make_progress/article/details/127658948