# Hive 的安装

​ 本地和远程模式安装配置方式大致相同,本质上是将 Hive 默认的元数据存储介质由自带的 Derby 数据库替换为 MySQL 数据库,这样无论在任何目录下以任何方式启动 Hive,只要连接的是同一台 Hive 服务,那么所有节点访问的元数据信息是一致的,从而实现元数据的共享。下面就以本地模式为例,讲解安装过程。
​ 本地模式的 Hive 安装主要包括两个步骤:首先安装 MySQL 服务,再安装 Hive。具体步骤如下:

# 安装 MySQL 服务

MySQL安装方式有许多种,可以直接解压安装包进行相关配置,也可以选择在线安装,本节选用在线安装MySQL方式。在线安装MySQL的具体指令和说明如下:

# 切换 yum 源

命令行提示符
1
[root@master ~]# vi /etc/yum.repos.d/CentOS-Base.repo

修改镜像的内容,一定要确定修改的是正确并且完整,修改的文本内容如下,删除的时候可以在命令模式下输入【100dd】快速删除,操作演示如下:

​ 需要修改的 yum 镜像文件如下也可以在下发的文件中进行复制:
yum镜像文件
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
[base]
name=CentOS-6.10 - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos-vault/6.10/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-6
#released updates
[updates]
name=CentOS-6.10 - Updates - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos-vault/6.10/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-6
#additional packages that may be useful
[extras]
name=CentOS-6.10 - Extras - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos-vault/6.10/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-6
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-6.10 - Plus - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos-vault/6.10/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-6
#contrib - packages by Centos Users
[contrib]
name=CentOS-6.10 - Contrib - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos-vault/6.10/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-6

# 清除 yum 缓存

Bash命令
1
[root@master ~]# yum clean all

hive1.jpg

# 在线安装 MySql 软件

Bash命令
1
[root@master ~]# yum -y install mysql-server

​ 安装完成后,如图片所示,则数据库安装完成:
hive2.jpg

# 启动 mysql 服务

Bash命令
1
2
[root@master ~]# service mysqld start
[root@master ~]# chkconfig mysqld on

hive3.jpg
​ 上述指令中,首先通过 “yum install” 命令下载并安装 MySQL 程序,并且启动 MySQL 服务,然后就可以使用 MySQL 命令连接到 MySQL 客户端。需要注意的是,上述安装与启动 MySQL 程序仅限于 Centos6 中使用。
说明:如果是 CentOS7 可以参考:Centos7 在线安装和配置 MySQL5.7 - SegmentFault 思否

# 修改登录 MySQL 用户名和密码 bash

​ 进入 mysql 数据库

Bash命令
1
[root@master ~]# mysql

hive4.jpg

数据库界面
1
2
3
4
5
6
7
8
mysql> set password for root@localhost=password('123456');
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

​ 结果显示如下:
hive5.jpg
​ 运行结束后,【ctrl+c】退出 mysql 数据库!

# 安装 Hive

# 上传 Hive 安装包并解压

​ 创建出存放 hive 软件的目录和安装的目录,切换至 software 目录,将软件包拖放至此,然后在进行解压到 servers

Bash命令
1
2
3
4
[root@master ~]# mkdir -p /export/software/
[root@master ~]# mkdir -p /export/servers/
[root@master ~]# cd /export/software/
[root@master software]

​ 打开 新建文件传输 图标,如下所示:
hive6.jpg
Bash命令
1
[root@master software]# tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /export/servers/

一定要确定是解压成功之后在操作,解压成功会有如下信息显示。
hive7.jpg

# 修改配置文件

​ 首先,切换目录到 hive 配置文件目录下,由于 Hive 安装包 conf 目录下,没有提供 hive-site.xml 文件,这里需要创建并编辑一个 hive-site.xml 配置文件,具体内容如下所示:

Bash命令
1
2
[root@master servers]# cd /export/servers/apache-hive-1.2.1-bin/conf/
[root@master conf]# vi hive-site.xml

​ 将以下配置信息粘贴进去,并保存退出。
hive配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>
<description>Mysql连接协议</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>JDBC连接驱动</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
<description>用户名</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
<description>密码</description>
</property>
</configuration>

# 依赖包的更换

​ 将桌面的 mysql-connector-java-5.1.21.jar Mysql 驱动包放到 /export/servers/apache-hive-1.2.1-bin/lib 目录中,如下图所示:
hive8.jpg
​ 开两个 新建文件传输窗口 将 Hadoop 中的 Jline 包替换成 hive 包中 Jline 包,并将 Hadoop 中旧的 Jline 包版本删除,一定要删除,否则还是旧版本。
hive9.jpg
注意:如果拖不过去的话,就先将 Jline 包拖放到桌面,然后再放进 Hadoop 文件夹中。

# 启动 Hadoop 集群

Bash命令
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[root@master conf]# sh /usr/local/hadoop-2.6.5/sbin/start-all.sh
WARNING: HADOOP_SECURE_DN_USER has been replaced by HDFS_DATANODE_SECURE_USER. Using value of HADOOP_SECURE_DN_USER.
Starting namenodes on [master]
Last login: Thu Nov 25 05:04:04 CST 2021 from 192.168.128.1 on pts/0
Starting datanodes
Last login: Thu Nov 25 05:43:45 CST 2021 on pts/0
Starting secondary namenodes [master]
Last login: Thu Nov 25 05:43:48 CST 2021 on pts/0
Starting resourcemanager
Last login: Thu Nov 25 05:43:53 CST 2021 on pts/0
Starting nodemanagers
Last login: Thu Nov 25 05:44:00 CST 2021 on pts/0
[root@master ~]# jps
1824 SecondaryNameNode
2375 Jps
2059 ResourceManager
1566 NameNode

初始化 Mysql 元数据
Bash命令
1
2
3
4
5
6
7
8
9
[root@master conf]# cd /export/servers/apache-hive-1.2.1-bin/bin/
[root@master bin]# ./schematool -dbType mysql -initSchema
Metastore connection URL: jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true
Metastore Connection Driver : com.mysql.jdbc.Driver
Metastore connection User: root
Starting metastore schema initialization to 1.2.0
Initialization script hive-schema-1.2.0.mysql.sql
Initialization script completed
schemaTool completed

# 启动 Hive

Bash命令
1
2
3
4
5
6
7
[root@master bin]# ./hive

Logging initialized using configuration in jar:file:/export/servers/apache-hive-1.2.1-bin/lib/hive-common-1.2.1.jar!/hive-log4j.properties
hive> show databases;
OK
default
Time taken: 0.901 seconds, Fetched: 1 row(s)

​ 到此为止,Hive 已经安装完成!!