分布式搭建hive环境
环境准备:
系统:Ubuntu 14.04
IP:192.168.110.101
192.168.110.102
192.168.110.103
Hadoop版本:2.6.4
MySQL
- 需要事先准备好Hadoop集群,并启动。
- 安装MySQL
- 在MySQL上创建hive元数据库,并对hive进行授权
安装完MySQL后,新建hive数据库,用来保存hive的元数据
mysql> create database hive;
将hive数据库下的所有表的所有权限赋给hadoop用户,并配置mysql为hive-site.xml中的连接密码,然后刷新系统权限关系表
mysql> CREATE USER 'hadoop'@'%' IDENTIFIED BY 'mysql';
mysql> grant all privileges on *.* to root@'%' identified by '******' //***表示数据库连接密码
mysql> flush privileges;
'需要注意的是,在ubuntu系统里,默认情况下MySQL只允许本地登录,所以需要修改配置文件将地址绑定注释。'
sudo vi /etc/mysql/my.cnf
找到 # bind-address = 127.0.0.1 注释掉这一行就可以啦
4.安装jar包到hive
需要下载MySQL的jdbc连接器mysql-connector-5.*.*.jar
,然后将下载后的jdbc放到hive安装包的lib目录下
下载链接:http://dev.mysql.com/downloads/connector/j/
由于安装的是hive2.1,故需要在MySQL执行
mysql> SOURCE /home/**/app/hive/scripts/metastore/upgrade/mysql/hive-schema-2.1.0.mysql.sql;
5.配置hive-site.xml
# cd /opt/hive/conf/
# cp hive-default.xml.template hive-site.xml
# vim hive-site.xml
------------------------------------------------------------
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hadoop1:3306/hive_metadata?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> //我这里是用root用户操作的,要与5.1步骤授权一致。
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
</property>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
<property>
<name>datanucleus.schema.autoCreateAll</name>
<value>true</value> //我安装时报错,加上这个完美解决
<description>creates necessary schema on a startup if one doesn't exist. set this to false, after creating it once</description>
</property>
6.元数据初始化
初始化hive的元数据库(使用MySQL数据库)
# cd /opt/hive/bin
# schematool -initSchema -dbType mysql
7.启动验证hive
启动验证hive
hive