一、Hive安装环境装备

  1. 安装JDK
  2. 安装hadoop集群

二、下载Hive安装包

下载地址:https://apache.org/dist/hive

根据需要下载相应的版本,这里以hive-1.2.2为例。

Hive安装_xml

三、Hive安装包解压

1.根据hadoop集群的系统资源消耗情况,选择进程消耗比较小的进行安装。这里以node2节点为例。hive安装包通过xshell中的xftp工具上传到node2上。

Hive安装_xml_02Hive安装_mysql_03Hive安装_mysql_04

2.解压hive安装包

#1.把hive的压缩安装包解压到/opt/bigdata/目录下
[root@node2 ~]# tar -xzvf apache-hive-1.2.2-bin.tar.gz -C /opt/bigdata/ #输入完命令后回车
#2.切换到bigdata目录下
[root@node2 ~]# cd /opt/bigdata/
#3.修改hive安装目录的所属用户和组为hadoop:hadoop
[root@node2 bigdata]# chown -R hadoop:hadoop apache-hive-1.2.2-bin/
#4.修改hive安装目录的读写权限
[root@node2 bigdata]# chmod -R 755 apache-hive-1.2.2-bin/

3.添加环境变量

#1.切换用户
[root@node2 ~]# su - hadoop
Last login: Mon Aug 12 11:00:21 CST 2019 on pts/1
[hadoop@node2 ~]$ vi .bash_profile

Hive安装_hadoop_05

#2.环境变量生效
[hadoop@node2 ~]$ source .bash_profile

四、安装MySQL数据库

  1. 安装wget工具

#1.安装wget工具
[root@node2 ~]# yum install -y wget
Loaded plugins: fastestmirror
Determining fastest mirrors
#省略部分日志
Complete!
#2.下载mysql的yum源安装文件,使用下面的命令就直接下载了安装用的Yum Repository,大概25KB的样子,然后就可以直接yum安装了。
[root@node2 ~]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
#3.安装mysql的yum源配置
[root@node2 ~]# yum -y install mysql57-community-release-el7-10.noarch.rpm

2.yum安装MySQL

[root@node2 ~]# yum -y install mysql-community-server

3.启动MySQL

[root@node2 ~]# systemctl start mysqld.service
[root@node2 ~]# systemctl status mysqld.service

Hive安装_java_06

4.登录MySQL

#1.查看默认密码
[root@node2 ~]# grep "password" /var/log/mysqld.log
2019-07-17T07:48:39.339873Z 1 [Note] A temporary password is generated for
#2.显示默认密码:n8Ae>q70PeHG
#3.使用命令mysql -uroot -p登录mysql
[root@node2 ~]# mysql -uroot -p # 回车后会提示输入密码
Enter password: #n8Ae>q70PeHG
#4.使用下面命令修改密码为:!Qaz123456
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '!Qaz123456';
#5.再次执行show databases;
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)

五、安装Hive客户端

Hive客户端有三种安装方式:内嵌模式、本地模式和远程模式。此处以本地模式为例。

1.内嵌模式

元数据保存在内嵌的derby数据库中,只允许一个会话链接,尝试多个会话链接时二手域名拍卖平台地图会报错,不适合企业开发,就不说了。

2.本地模式

①复制hive配置文件

#1.在conf目录下从hive-default.xml.template复制出来一个配置文件hive-site.xml文件
#hive-site.xml文件中配置链接mysql的相关信息
[hadoop@node2 conf]$ cp hive-default.xml.template hive-site.xml
#2.使用vi命令编辑hive-site.xml文件并设置行号,按shift 输入:set number回车发现行号设置成功
[hadoop@node2 conf]$ vi hive-site.xml

设置行号命令":set number",再删除部分内容命令“:18,3913d”输入后回车,会发现<configuration></configuration>标签中间多余的内容已经删除掉了。

②在标签<configuration></configuration>中填入以下内容

<property>
<!--这个是用于存放hive元数据的目录位置。 -->
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive_remote/warehouse</value>
</property>
<!-- 控制hive是否连接一个远程metastore服务器还是开启一个本地客户端jvm,默认是true,Hive0.10已经取消了该配置项;-->
<property>
<name>hive.metastore.local</name>
<value>true</value>
</property>
<!-- JDBC连接字符串,默认jdbc:derby:;databaseName=metastore_db;create=true;-->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost/hive_remote?createDatabaseIfNotExist=true</value>
</property>
<!--JDBC的driver,默认org.apache.derby.jdbc.EmbeddedDriver; -->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<!-- username,默认APP;-->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<!--password,默认mine;-->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>!Qaz123456</value>
</property>

③下载MySQL驱动包

下载地址:https://mvnrepository.com/artifact/mysql/mysql-connector-java/5.1.46

④将下载的mysql驱动包复制到hive的lib目录下

[root@node2 ~]# cp mysql-connector-java-5.1.46.jar /opt/bigdata/apache-hive-1.2.2-bin/lib/

3.远程模式

就是mysql的安装和hive的安装没有在同一台机器,和本地模式最大的区别就是在hive-site.xml中,我们需要修改下mysql的ip地址和端口号。但是我们需要注意以下两个问题:

①hive-site.xml中的mysql安装主机的ip地址和端口号。

<property>  
  <name>hive.metastore.warehouse.dir</name>  
  <value>/user/hive_remote/warehouse</value>  
</property>  

<property>  
  <name>hive.metastore.local</name>  
  <value>true</value>  
</property>  
   
<property>  
  <name>javax.jdo.option.ConnectionURL</name>  
  <value>jdbc:mysql://192.168.200.13/hive_remote?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>!Qaz123456</value>  
</property>  

②访问mysql的用户名的访问权限需要进行设置。

--授权使用root用户名和密码(!Qaz123456),可以通过任意机器(%符号代替所有机器)访问mysql数据库
mysql> grant all on *.* to root@'%' identified by '!Qaz123456';
Query OK, 0 rows affected, 1 warning (0.00 sec)
--使上一步授权生效
mysql> flush privileges;

六、启动Hive

[hadoop@node2 ~]$ hive
hive>

到这一步提示,说明Hive已经完成安装。