1、简介
Hive是一个客户端工具并没有集群的概念,所以Hive的安装部署相对简单。一般情况下,由于Hive的元数据信息存储在第三方数据库中(如MySQL),所以在安装Hive之前需要首先安装MySQL数据库。由于硬件资源有限,我们从Hadoop集群中选择hadoop1节点来安装部署Hive客户端以及MySQL元数据库即可。(metastore,hs2后续介绍)。
2、 安装MySQL
MySQL数据库的安装有离线和在线安装两种方式,为了方便起见,我们选择在线安装方式。
2.1、在线安装MySQL
在hadoop1节点上,使用yum命令在线安装MySQL数据库,具体操作如下所示。
[root@hadoop1 ~]# yum install mysql-server
2.2、启动mysql服务
MySQL数据库安装成功之后,通过命令行启动MySQL服务,具体操作如下所示。
[root@hadoop1 ~]# service mysqld start
2.3、设置MySQL root用户密码
MySQL刚刚安装完成,默认root用户是没有密码的,需要登录MySQL设置root用户密码,具体步骤如下。
(1)无密码登录MySQL
因为MySQL默认没有密码,所以使用root用户可直接登录MySQL,输入密码时可按Enter键回车即可,具体操作如下所示。
[root@hadoop1 ~]# mysql -u root -p
Enter password:
......
mysql>
(2)设置root用户密码
在MySQL客户端设置root用户密码,具体操作如下所示。
mysql>set password for root@localhost=password('root');
(3)有密码登录MySQL
设置完MySQL root用户密码之后,退出并重新登录MySQL,用户名为:root,密码为:root。
[root@hadoop1 ~]# mysql -u root –p
Enter password:
mysql>
如果能成功登录MySQL,就说明MySQL 的root用户密码设置成功。
2.4、创建Hive账户
1)首先输入如下命令创建Hive账户,操作命令如下。
mysql>create user 'hive' identified by 'hive';
2)将MySQL所有权限授予Hive账户,操作命令如下所示。
mysql>grant all on *.* to 'hive'@'hadoop1' identified by 'hive';
3)通过命令使上述授权生效,操作命令如下所示。
mysql> flush privileges;
如果上述操作成功,就可以使用Hive账户登录MySQL数据库,具体命令如下。
mysql> mysql -h hadoop1 -u hive -p
3、安装Hive
Hive的安装比较简单,因为Hive底层存储依赖HDFS,底层计算默认依赖MapReduce,所以我们选择一个节点部署Hive客户端,通过Hive客户端能将Hive 查询任务提交到Hadoop集群运行即可。
3.1、下载Hive
到官网(http://hive.apache.org/down/oads.html)下载 Hive 安装包apache-hive-2.3.7-bin.tar.gz,然后上传至hadoop1节点的/home/hadoop/app目录下。
3.2、解压Hive
在hadoop1节点上,使用解压命令解压Hive安装包,具体操作如下所示。
[hadoop@hadoop1 app]$ tar -zxvf apache-hive-2.3.7-bin.tar.gz
然后创建hive软连接,具体操作如下所示。
[hadoop@hadoop1 app]$ ln -s apache-hive-2.3.7-bin hive
3.3、修改hive-site.xml配置文件
进入hive的conf目录下发现hive-site.xml文件不存在,需要从默认配置文件复制一份,具体操作如下所示。
[hadoop@hadoop1 conf]$ cp hive-default.xml.template hive-site.xml
然后在hive-site.xml配置文件中,修改元数据库相关配置,修改内容如下所示。
[hadoop@hadoop1 conf]$ vi hive-site.xml
#配置连接驱动名为com.mysql.jdbc.Driver
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
#修改连接MySQL的URL
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hadoop1:3306/hive?characterEncoding=UTF-8</value>
</property>
#修改连接数据库的用户名和密码
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hive</value>
</property>
3.4、配置Hive环境变量
打开.bashrc文件,配置Hive环境变量,具体操作如下所示。
[hadoop@hadoop1 conf]$ vi ~/.bashrc
HIVE_HOME=/home/hadoop/app/hive
PATH=$JAVA_HOME/bin: $HADOOP_HOME/bin: $HIVE_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH HADOOP_HOME HIVE_HOME
保存并退出,并用命令source ~/.bashrc使配置文件生效。
3.5、添加MySQL驱动包
下载mysql-connector-java-5.1.38.jar
(地址:http://central.maven.org/maven2/mysql/)驱动包,然后上传至Hive的lib目录下即可。
3.6、修改Hive相关数据目录
修改hive-site.xml配置文件,更改相关数据目录,具体配置如下所示。
[hadoop@hadoop1 conf]$ vi hive-site.xml
<property>
<name>hive.querylog.location</name>
<value>/home/hadoop/app/hive/iotmp</value>
</property>
<property>
<name>hive.exec.local.scratchdir</name>
<value>/home/hadoop/app/hive/iotmp</value>
</property>
<property>
<name>hive.downloaded.resources.dir</name>
<value>/home/hadoop/app/hive/iotmp</value>
</property>
3.7、启动Hive服务
第一次启动Hive服务需要先进行初始化,具体操作如下所示。
[hadoop@hadoop1 hive]$ bin/schematool -dbType mysql -initSchema
然后再执行bin/hive脚本启动Hive服务,具体操作如下所示。
[hadoop@hadoop1 hive]$ bin/hive
hive>show databases;
如果上述操作没有问题,则说明Hive客户端已经安装成功。