在这一节,我们将进行Hive的安装。与安装Hadoop相比,Hive的安装非常简单,并且有些工作已经在安装Hadoop的时候完成,例如JDK的安装。并且Hive作为Hadoop的一个客户端,运行方式并不分为单机模式、伪分布模式、完全分布模式,所以不管读者在上一节选择伪分布模式或者完全分布模式安装Hadoop,安装Hive的方式只有一种。
安装Hive的步骤分为以下两步。
(1)安装元数据库。
(2)修改Hive配置文件。
由于Hadoop选择的Cloudera的CDH5版本,为了不出现兼容性的问题,Hive也选择CDH5的版本,完整的版本号为hive-1.1.0-cdh5.6.0。不管读者采用伪分布模式还是完全分布模式安装Hadoop,Hive可以被安装至集群任意一个节点(以主节点为例)。
Hive的元数据和数据是分开存放的,数据存放在HDFS上,而元数据默认是存在Hive自带的Derby数据库,但由于Derby只支持同时一个用户访问Hive,所以不推荐使用。我们将使用MySQL作为Hive的元数据库。执行以下命令(以root用户在主节点执行)。
安装MySQL客户端:
yum install mysql
安装MySQL服务器端:
yum install mysql-server yum install mysql-devel
查看MySQL状态、启动及停止:
service mysqld status service mysqld start service mysqld stop
启动MySQL服务后,以root用户登录MySQL执行命令:
mysql -u root -p
创建数据库hive,用来保存Hive元数据:
create database hive;
使hadoop(操作系统用户)用户可以操作数据库hive中的所有表:
GRANT all ON hive.* TO hadoop@'master' IDENTIFIED BY 'hivepwd'; flush privileges;
这样,Hive的元数据库就安装完成。
先将Hive的安装文件解压,将Hive的安装包移至/opt下,以hadoop用户在master执行:
tar -zxvf /opt/hive-1.1.0-cdh5.6.0.tar.gz
和Hadoop相同,Hive的配置文件还是存放在/opt/hive-1.1.0-cdh5.6.0/conf路径下,以hadoop用户创建文件hive-site.xml,添加以下内容:
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <property> <name>hive.metastore.local</name> <value>true</value> </property> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://master:3306/hive?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>hadoop</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>hivepwd</value> </property> </configuration>
修改/opt/hive-1.1.0-cdh5.6.0/conf/hive-env.sh文件,以hadoop用户在文件末尾追加:
export JAVA_HOME=/opt/jdk1.7.0_80 export HADOOP_HOME=/opt/hadoop-2.6.0-cdh5.6.0
将MySQL的JDBC驱动jar包移到hive-1.1.0-cdh5.6.0/lib文件夹下,否则Hive不能成功连接MySQL,最后还需配置环境变量,以root用户在/etc/profile文件末尾追加:
export HIVE_HOME=/opt/hive-1.1.0-cdh5.6.0 export PATH=$PATH:$HIVE_HOME/bin
追加后执行命令使环境变量立即生效:
source /etc/profile
首先启动Hadoop和MySQL,然后执行:
hive
进入Hive命令行,执行命令,创建一个名为test的表,并查询该表的记录数:
create table test(id int); select count(*) from test;
如无异常并且结果显示为0,则安装成功。