Hive的安装,
Hive是运行在Hadoop上的,因此在之前还必须安装好Hadoop。这儿有版本对应问题,我装的Hadoop2.2.0+Hive1.2.1。
Hive安装:
首先是MYSQL的安装:
hive内置数据库是Derby,这是存放元数据的地方,可以指定配置为MySQL。
检查MySQL:查看该操作系统上是否已经安装了mysql数据库:
rpm -qa | grep mysql
若有信息则卸载:rpm -e mysql //普通卸载
rpm -e --nodeps mysql //强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除
安装MySQL:
yum install -y mysql-server mysql-client
查看版本:
rpm -qi mysql-server
启动mysql服务:
service mysqld start
查看mysql服务开机是否自动开启和开启操作:
chkconfig --list | grep mysqld //查看
chkconfig mysqld on //开机时自动开启
设置root密码,mysql安装好后root密码没有,要自己设置:
mysqladmin -u root password 'hadoop'
mysqladmin -u root -h master password ‘hadoop’ //master是你的namenode主机名
用root用户登录:
mysql -uroot -hmaster -phadoop
在mysql下创建hive用户并授权:
CREATE USER 'hive' IDENTIFIED BY 'hive';
GRANT ALL PRIVILEGES ON *.* TO 'hive'@'master' WITH GRANT OPTION;
flush privileges; //刷新权限表
注:添加权限格式:grant 权限 on 数据库.表 to '用户名'@'登录主机';
hive用户登录:
mysql -h master -uhive
设置密码:set password = password('hive');
建立Hive专用的元数据库:
create database hive;
Hive安装和配置:
解压缩安装:
tar zvxf Hive版本
设置环境变量:
在/etc/profile设置HIVE_HOME指向hive安装目录;在path变量中追加$HIVE_HOME/bin。
配置:
在hive安装目录下进入conf目录,配置hive-site.xml文件:
hive-site.xml一开始并不存在,需要cp hive-default.xml hive-site.xml,之后在hive-site.xml中设置,它会覆盖掉默认配置
hive-site.xml添加如下内容:
<?xml version=”1.0″?>
<?xml-stylesheet type=”text/xsl” href=”configuration.xsl”?>
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://master:3306/hive?characterEncoding=UTF-8</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hive</value>
</property>
</configuration>
拷贝mysql的驱动到hive/lib目录下:
mysql驱动和mysql版本并不一定要一样,但最好不要低于版本太多
完成后,拷贝Hive目录到其他所有slave节点上,并且安装目录跟master上一致:
scp -r /home/hadoop/app/hadoop-2.2.0/ slave:/home/hadoop/app/
启动hive:
在启动前要首先启动好Hadoop
接着bin/hive启动hive
测试安装成功否:
use hive;
create table test (key string);
show tables;