Hive多用户模式安装

  • 环境准备
  1. hadoop集群(hive需要运行在hadoop集群中)
    参考:
    Hadoop完全分布式集群搭建
    Hadoop高可用(HA)集群搭建
  2. 集群中有一台服务器中安装了MySQL
    参考:Linux中安装MySQL
  3. hive安装包
    下载地址
    https://mirrors.aliyun.com/apache/hive/
    我的hadoop版本为2.6.5,hive版本为1.2.1

1. 集群规划

hadoop01-hadoop04:hadoop集群
hadoop01:MySQL服务器
hadoop02:Hive服务端
hadoop03-hadoop04:Hive客户端

2. 安装步骤

(1) 上传并解压安装包

[hadoop@hadoop02 ~]$ tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /home/hadoop/apps/

(2) 把JDBC驱动包加入到HIVE_HOME/lib下

(3) 把hive目录分发给hadoop03和hadoop04

[hadoop@hadoop02 ~]$ scp -r /home/hadoop/apps/hive-1.2.1 hadoop03:/home/hadoop/apps/
[hadoop@hadoop02 ~]$ scp -r /home/hadoop/apps/hive-1.2.1 hadoop04:/home/hadoop/apps/

(3) 3台hive节点的环境变量中都加入HIVE_HOME

export HIVE_HOME=/home/hadoop/apps/hive-1.2.1
export PATH=$PATH:$HIVE_HOME/bin

(4) 修改服务端(hadoop02)的hive配置文件hive-site.xml

该文件在HIVE_HOME/conf/下

# 如果没有该文件,复制hive-default.xml.template为hive-site.xml
[hadoop@hadoop02 conf]$ cp hive-default.xml.template hive-site.xml

[hadoop@hadoop02 conf]$ vim hive-site.xml

<configuration>
    <!--可选,配置hive数据存放的位置,是一个HDFS路径,默认就是/user/hive/warehouse-->
    <property>  
        <name>hive.metastore.warehouse.dir</name>
        <value>/user/hive/warehouse</value>
    </property> 
    
    <!--以下4个配置是mysql的基本配置-->
    <!--数据库hivedb是存放元数据的mysql数据库,可以自定义名称-->
    <!--
        注意:
        如果hive服务器与mysql在同一台机器,把hadoop01换成localhost
        一定是localhost,不能写mysql那台的服务器的主机名或IP
    -->
    <property>  
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://hadoop01/hivedb?createDatabaseIfNotExist=true</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>
</configuration>

(5) 修改客户端(hadoop03、hadoop04)的hive配置文件hive-site.xml

<configuration>
    <!--要与服务端配置的这个路径一样-->
    <property>  
        <name>hive.metastore.warehouse.dir</name>
        <value>/user/hive/warehouse</value>
    </property>
    <property>  
        <name>hive.metastore.local</name>  
        <value>false</value>  
    </property>  
    <property>
        <name>hive.metastore.uris</name>
        <value>thrift://hadoop02:9083</value>
    </property>
</configuration>

(6) 保证hadoop集群中的jline jar包和所有hive节点的 jline jar包版本保持一致(高版本替换低版本)

hadoop的jline jar包存放位置:HADOOP_HOME/share/hadoop/yarn/lib/
其中的jline包为:jline-0.9.94.jar(hadoop-2.6.5)
hive的jline jar包存放位置:HIVE_HOME/lib/
其中的jline包为:jline-2.12.jar(hive-1.2.1)
删除hadoop的jline包,把hive的jline包放进去

(7) hive服务端初始化元数据(必须保证mysql服务正常启动,且允许远程权限)

[hadoop@hadoop02 conf]$ schematool -dbType mysql -initSchema

《Hive多用户模式安装》

上图代表初始化成功!

(8) 启动hive服务端(必须保证hadoop集群正常启动)

[hadoop@hadoop02 conf]$ hive --service metastore 

(9) 启动两台客户端

[hadoop@hadoop03 ~]$ hive
hive>

[hadoop@hadoop04 ~]$ hive
hive>

Hive多用户模式安装成功!

    原文作者:CoderJed
    原文地址: https://www.jianshu.com/p/bac182ab5412
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞