• Hive 安装和配置


    环境准备

    1. 已安装 HDFS 和 Yarn 集群环境
    2. Linux 已安装 MySQL5

    安装步骤

    1. 上传并解压 Hive 安装文件

    将 apache-hive-3.1.2-bin.tar.gz 安装包上传到 node-01 的 /root 目录下并将其解压

    [root@node-01 ~]# tar -zxf apache-hive-3.1.2-bin.tar.gz -C  apps/
    [root@node-01 ~]# rm -rf apache-hive-3.1.2-bin.tar.gz
    [root@node-01 apps]# mv apache-hive-3.1.2-bin/ hive-3.1.2
    
    2. 配置环境变量
    [root@node-01 apps]# vi /etc/profile
    export HIVE_HOME=/root/apps/hive-3.1.2
    export PATH=$PATH:$HIVE_HOME/bin
    [root@node-01 apps]# source /etc/profile
    
    3. 将 mysql5 的驱动包放入 Hive 的 lib 中

    上传 mysql-connector-java-5.1.40 包到 node-01 的 /root 目录下

    [root@node ~]# mv /root/mysql-connector-java-5.1.40 /root/apps/hive-3.1.2/lib/
    
    4. 配置 hive-env.sh 运行环境
    [root@node-01 ~]# cd /root/apps/hive-3.1.2/conf
    [root@node-01 conf]# mv hive-env.sh.template hive-env.sh
    [root@node-01 conf]# vim hive-env.sh 
    
    # Set HADOOP_HOME to point to a specific hadoop install directory
    HADOOP_HOME=/root/apps/hadoop-3.2.1
    
    # Hive Configuration Directory can be controlled by:
    export HIVE_CONF_DIR=/root/apps/hive-3.1.2/conf
    
    5. 在 HDFS 上创建相关目录并设置权限
    [root@node-01 ~]# hadoop fs -mkdir /tmp
    [root@node-01 ~]# hadoop fs -mkdir -p /user/hive/warehouse
    [root@node-01 ~]# hadoop fs -chmod 777 /tmp
    [root@node-01 ~]# hadoop fs -chmod 777 /user/hive/warehouse
    
    6. 配置 hive-site.xml 文件(远程方式)
    [root@node-01 ~]# cd /root/apps/hive-3.1.2/conf
    [root@node-01 conf]# vim hive-site.xml
    <configuration>
        <!-- 关闭版本验证-->
        <property>
            <name>hive.metastore.schema.verification</name>
            <value>false</value>
        </property>
    
        <!-- Hive 数据库数据存储到 HDFS 路径-->
        <property>
            <name>hive.metastore.warehouse.dir</name>
            <value>/user/hive/warehouse</value>
        </property>
        
        <!--关闭本地运行模式-->
        <property>
            <name>hive.exec.mode.local.auto</name>
            <value>false</value>
        </property>
        
        <!--Hive元数据不存放本地-->
        <property>
            <name>hive.metastore.local</name>
            <value>false</value>
        </property>
        
        <!-- metastore服务器URI -->
        <property>
            <name>hive.metastore.uris</name>
            <value>thrift://192.168.229.21:9083</value>
        </property>
        
        <!-- 远程 mysql 数据库本地 url 地址-->
        <property>
            <name>javax.jdo.option.ConnectionURL</name>
            <value>jdbc:mysql://192.168.229.21:3306/hive?serverTimezone=UTC
            </value>
        </property>
        
        <!-- 连接 msyql5 驱动-->
        <property>
            <name>javax.jdo.option.ConnectionDriverName</name>
            <value>com.mysql.jdbc.Driver</value>
        </property>
    	
    	<!-- 连接 mysql 用户名-->
        <property>
            <name>javax.jdo.option.ConnectionUserName</name>
            <value>hive</value>
        </property>
        
        <!-- 连接 mysql 密码-->
        <property>
            <name>javax.jdo.option.ConnectionPassword</name>
            <value>hive</value>
        </property>
        
        <!--开启mapreduce任务-->
        <property>
        	<name>hive.compute.query.using.stats</name>
            <value>false</value>
        </property>
        
        <!-- 显示表的列名 -->
        <property>
          <name>hive.cli.print.header</name>
          <value>true</value>
        </property>
    
        <!-- 显示数据库名称 -->
        <property>
          <name>hive.cli.print.current.db</name>
          <value>true</value>
        </property>
    </configuration>
    
    7. 配置 Hive 日志目录
    [root@node-01 ~]# cd /root/apps/hive-3.1.2
    [root@node-01 hive-3.1.2]# mkdir logs
    [root@node-01 hive-3.1.2]# cd conf/
    [root@node-01 conf]# mv hive-log4j2.properties.template hive-log4j2.properties
    [root@node-01 conf]# vim hive-log4j2.properties
    #修改24行
    property.hive.log.dir = /root/apps/hive-3.1.2/logs
    
    8. 替换 Hive 低版本 guava-19.0.jar 包
    #查看 Hive 的 guava 版本
    [root@node-01 ~]# cd /root/apps/hive-3.1.2/lib
    [root@node-01 lib]# ll | grep guava
    -rw-r--r--. 1 root root  2308517 9月  27 2018 guava-19.0.jar
    
    #查看 Hadoop 的 guava 版本
    [root@node-01 ~]# cd /root/apps/hadoop-3.2.1/share/hadoop/common/lib
    [root@node-01 lib]# ll | grep guava
    -rw-r--r--. 1 1001 1001 2747878 9月  10 2019 guava-27.0-jre.jar
    -rw-r--r--. 1 1001 1001    2199 9月  10 2019 listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar
    
    #删除 Hive 的低版本 guava
    [root@node-01 ~]# cd /root/apps/hive-3.1.2/lib
    [root@node-01 lib]# rm -rf guava-19.0.jar
    
    #复制 Hadoop 的高版本 guava
    [root@node-01 lib]# cp /root/apps/hadoop-3.2.1/share/hadoop/common/lib/guava-27.0-jre.jar /root/apps/hive-3.1.2/lib/
    
    9. 拷贝 hive 到 node-02、node-03
    [root@node-01 ~]# cd /root/apps/
    [root@node-01 apps]# scp -r hive-3.1.2/ node-02:$PWD
    [root@node-01 apps]# scp -r hive-3.1.2/ node-03:$PWD
    
    [root@node-01 ~]# cd /root/apps/hadoop-3.2.1/etc/hadoop
    [root@node-01 hadoop]# scp core-site.xml node-02:$PWD
    [root@node-01 hadoop]# scp core-site.xml node-03:$PWD
    
    [root@node-01 apps]# cd /etc
    [root@node-01 etc]# scp profile node-02:$PWD
    [root@node-01 etc]# scp profile node-03:$PWD
    [root@node-02 ~]# source /etc/profile
    [root@node-03 ~]# source /etc/profile
    
    10. 初始化 Hive
    [root@node-01 ~]# schematool -dbType mysql -initSchema
    Initialization script completed #表示初始化完成
    schemaTool completed
    

    如果初始化失败,请检查连接 MySQL 配置的 URL 地址是否正确

    11. 启动 HDFS(HA)和 Yarn 集群环境

    Hive 的表数据存储于 HDFS 中,所以需要开启 HDFS 集群,Hive 的查询依赖于 MapReduce 任务,所以需要开启 Yarn 集群

    [root@node-01 ~]# jps
    10161 NodeManager
    8804 QuorumPeerMain
    10005 ResourceManager
    9592 DFSZKFailoverController
    9450 JournalNode
    9068 NameNode
    9212 DataNode
    
    [root@node-02 ~]# jps
    9570 QuorumPeerMain
    9795 JournalNode
    10261 NodeManager
    9868 DFSZKFailoverController
    9965 DataNode
    10111 ResourceManager
    10671 NameNode
    
    [root@node-03 ~]# jps
    3632 JournalNode
    3718 DataNode
    3853 NodeManager
    3502 QuorumPeerMain
    
    12. 启动 Hive 的元数据 metastore 服务

    Hive 元数据存储于 Linux 系统下的 mysql 5 中,所以需要启动 mysql 服务,并允许 Hive 远程连接 mysql

    [root@node-01 ~]# hive --service metastore 1>/dev/null 2>&1 &
    [root@node-01 ~]# jps
    10161 NodeManager
    8804 QuorumPeerMain
    10005 ResourceManager
    9592 DFSZKFailoverController
    9450 JournalNode
    9068 NameNode
    9212 DataNode
    24030 RunJar # metastore 服务进程
    
    13. 启动 Hive 交互式 Shell 客户端
    [root@node-01 ~]# hive
    Logging initialized using configuration in jar:file:/root/apps/hive-3.1.2/lib/hive-common-3.1.2.jar!/hive-log4j2.properties Async: true
    Hive Session ID = 46631073-610a-4242-8d60-3800099daf94
    Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.
    hive (default)>  show databases;
    

    恭喜你,Hive 环境搭建成功:)

    作者:Binge
    本文版权归作者和博客园共有,转载必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。
  • 相关阅读:
    day 66 ORM django 简介
    day 65 HTTP协议 Web框架的原理 服务器程序和应用程序
    jQuery的事件绑定和解绑 事件委托 轮播实现 jQuery的ajax jQuery补充
    background 超链接导航栏案例 定位
    继承性和层叠性 权重 盒模型 padding(内边距) border(边框) margin 标准文档流 块级元素和行内元素
    属性选择器 伪类选择器 伪元素选择器 浮动
    css的导入方式 基础选择器 高级选择器
    03-body标签中相关标签
    Java使用内存映射实现大文件的上传
    正则表达式
  • 原文地址:https://www.cnblogs.com/binbingg/p/14674604.html
Copyright © 2020-2023  润新知