Hive的安装

概览

1.上传解压
2.配置环境变量
3.配置hive-site.xml
4.将mysql的连接驱动放到hive/lib下
5.初始化操作
6.执行hive命令并测试
7.异常处理

如果是集群版,Hive安装在一台虚拟机上就行

首先确保hdfs和mysql是正确启动的

1.上传解压

软件:hive-2.3.3

在/usr在创建hive文件夹,用来存放压缩包和作为安装路径

1
2
3
4
[root@master ~]# cd /usr
[root@master usr]# mkdir hive
[root@master usr]# ls
bin etc games hadoop hive include java lib lib64 libexec local sbin share sqoop src tmp zookeeper

利用Xshell连接虚拟机,并使用Xftp将hive压缩包上传到hive文件夹下
在这里插入图片描述
解压

1
[root@master hive]# tar -zxf apache-hive-2.3.3-bin.tar.gz

2.配置环境变量

1
[root@master hive]# vim /etc/profile

在最后添加

1
2
export HIVE_HOME=/usr/hive/apache-hive-2.3.3-bin
export PATH=$PATH:$HIVE_HOME/bin

刷新环境变量并测试

1
2
3
4
5
6
[root@master hive]# source /etc/profile
[root@master hive]# hive --version
Hive 2.3.3
Git git://daijymacpro-2.local/Users/daijy/commit/hive -r 8a511e3f79b43d4be41cd231cf5c99e43b248383
Compiled by daijy on Wed Mar 28 16:58:33 PDT 2018
From source with checksum 8873bba6c55a058614e74c0e628ab022

3.配置hive-site.xml

你会发现/usr/hive/apache-hive-2.3.3-bin/conf/并没有hive-site.xml文件
直接新建一个就行

1
2
3
4
5
[root@master hive]# cd apache-hive-2.3.3-bin/conf/
#创建文件
[root@master conf]# touch hive-site.xml
#编辑
[root@master conf]# vim hive-site.xml

在hive-site.xml中写入

ip改为自己的

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
<?xml version="1.0" encoding="UTF-8" standalone="no"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://192.168.134.154:3306/hive</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>

<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
<property>
<name>hive.cli.print.current.db</name>
<value>true</value>
</property>
<property>
<name>hive.cli.print.header</name>
<value>true</value>
</property>
<!-- 这是hiveserver2 -->
<property>
<name>hive.server2.thrift.port</name>
<value>10000</value>
</property>

<property>
<name>hive.server2.thrift.bind.host</name>
<value>192.168.134.154</value>
</property>

</configuration>

4.将mysql的连接驱动放到hive/lib下

进入到你的hive安装目录的lib下,利用Xftp将驱动传输进去
我的mysql数据库连接驱动的百度云链接:https://pan.baidu.com/s/1wCBuZQaCP_nKT5t504SeoA
提取码:fakd

5.初始化操作

利用数据库工具SQLyog在mysql创建个新的数据库hive
在这里插入图片描述

或者使用命令创建

1
2
3
#之后输入密码,我的mysql密码是root(因为之前配置sqoop的时候设置了一次user表)
[root@master ~]# mysql -u root -p
mysql>create database hive;

此时保证hadoop启动着
初始化操作如下

1
[root@master conf]# schematool -initSchema -dbType mysql

在这里插入图片描述

6.执行hive命令并测试

1
2
3
4
5
[root@master conf]# hive
hive> show databases;
OK
default
Time taken: 7.897 seconds, Fetched: 1 row(s)

7.异常处理

如果出错了

1
2
hive> show databases;
FAILED: SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

HIVE_HOME/lib 下的derby-10.11.1.1.jar问题,把derby-10.10.2.0.jar 换成derby-10.10.1.1.jar,把derby-10.10.2.0.jar删除,问题成功解决

derby-10.10.1.1.jar的百度云链接:https://pan.baidu.com/s/1v6mIGRjf8mlRQicRoau7iw
提取码:5ga1

其中hive-site.xml中的部分hiveserver2的配置是用于hiveserver2的,现在可以不配置,之后会介绍如何配置hiveserver2