Hive-3.1.3安装配置运行

前置:

1. 使用的hoadoop版本为3.3.3,可以自行下载安装。Index of /apache/hadoop/common/hadoop-3.3.3https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.3.3/

2. 远程源数据库用的mysql-5.7.38

3. 虚拟机Centos7

4. 配置jdk1.8环境变量

正式安装HIVE3.1.3

一、文件下载

hive-3.1.3下载:清华镜像地址Index of /apache/hive/hive-3.1.3https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-3.1.3/

二、安装HIVE

下载完后上传至虚拟机,然后解压。我这里hadoop装在/opt/hadoop3下,所以hive也传到该目录下。

1. 解压文件

tar -xvf apache-hive-3.1.3-bin.tar.gz

mv apache-hive-3.1.3-bin hive-3.1.3

2. 修改配置文件

2.1 文件位置:cd /opt/hadoop3/hive-3.1.3/conf

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

cp hive-default.xml.template hive-site.xml

2.2 修改hive-env.sh文件,修改内容(直接在文件末尾添加即可):

export HADOOP_HOME=/opt/hadoop3/hadoop-3.3.3

export HIVE_CONF_DIR=/opt/hadoop3/hive-3.1.3/conf

export HIVE_AUX_JARS_PATH=/opt/hadoop3/hive-3.1.3/lib

2.3 在hdfs中创建目录

  hdfs dfs -mkdir -p /user
  hdfs dfs -mkdir -p /user/hive
  hdfs dfs -mkdir -p /user/hive/warehouse
  hdfs dfs -mkdir -p /user/hive/tmp
  hdfs dfs -mkdir -p /user/hive/log
  hdfs dfs -chmod -R 777 /user

2.4 修改hive-site.xml

(mysql驱动我用的是mysql-connector-java-8.0.27.jar,下载后放到/opt/hadoop3/hive-3.1.3/lib里面)

<property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://mysqlnode1:3308/hive?createDatabaseIfNotExist=true</value>
    <description>mysql链接地址</description>
  </property>

<property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.cj.jdbc.Driver</value>
    <description>mysql驱动</description>
  </property>

<property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>hive</value>
    <description>mysql用户名</description>
  </property>

<property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>123456</value>
    <description>mysql密码</description>
  </property>

<property>
        <name>system:java.io.tmpdir</name>
        <value>/user/hive/tmp</value>
        <description>在hdfs创建的地址</description>
  </property>

我在文件前面额外做了两个配置,我看有的配置读取了这两个${system:java.io.tmpdir}和${system:user.name},没有配置的时候,运行时自动在conf下建了文件夹,所以我配了下:

<property>
        <name>system:java.io.tmpdir</name>
        <value>/user/hive/tmp</value>
        <description/>
  </property>
  <property>
        <name>system:user.name</name>
        <value>malachi</value>
        <description>这个随便取得name</description>
  </property>

注意修改完后,把hive-site.xml文件中的 #和&符号删掉,以免运行会报错code 0x8。

2.5 有个jar包可能会冲突 guava-19.0.jar和guava-27.0-jre.jar,我是把hadoop里面guava-27.0-jre.jar复制到hive里面,然后把guava-19.0.jar改为guava-19.0.jar.bak。两个目录分别为/opt/hadoop3/hadoop-3.3.3/share/hadoop/common/lib和/opt/hadoop3/hive-3.1.3/lib。

2.6 配置hive环境变量:

        vi /etc/profile

        在后面加上 export HIVE_HOME=/opt/hadoop3/hive-3.1.3

        export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin

        

3、启动服务

注意:使用hive前,需要确保HDFS和YARN已经启动,再使用HIVE.

3.1 初始化hive元数据:

在mysql中创建了hive数据库,然后执行:

schematool -dbType mysql -initSchema

(schematool 执行文件在/opt/hadoop3/hive-3.1.3/bin下面,配了环境变量就不用去目录下执行。)

 

成功后会出现这么些表,如果没成功,后面启动hive会报错。

3.2 启动服务

hive --service metastore &         ##元数据服务

hive --service hiveserver2 &        ##支持jdbc查询服务

jps -m        ##查看服务是否启动

3.3 验证服务

输入命令: hive

 show databases;        ##展示出了默认数据库 

use default;        ##选择使用default库

create table test(id int, username string);        ##创建table

show tables;        ##展示所有表

3.4 beeline方式连接

 执行:

!connect jdbc:hive2://localhost:10000

连接成功后:

show tables;

到此hive安装、配置、运行结束。


版权声明:本文为m992705800原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。