Hive多用户模式环境搭建:
架构:
Namenode | Datanode | Journalnode | Zookeeper | ZKFC | ResourceManager | NodeManager | MySql | MetaStoreServer(服务端) | HiveCLI(客户端) | |
node1 | 1 | 1 | 1 | 1 | 1 | |||||
node2 | 1 | 1 | 1 | 1 | 1 | 1 | ||||
node3 | 1 | 1 | 1 | 1 | 1 | 1 | ||||
node4 | 1 | 1 | 1 | 1 |
前期准备:安装MySQL数据库 部署主机:hadoop1 用户名/密码:root/123
安装Mysql:
1、yum install mysql mysql-server -y
2、mysql安装完毕后,启动MySQL服务,
service mysqld start
进入MySQL
mysql -u root -p 首次进入无密码
3、登录成功后,修改权限信息
grant all privileges on *.* to 'root'@'%' identified by '123' with grant option;--授权
use mysql;
select host , user , password from user ;
delete from user where host !='%'; --删除多余会对权限造成影响的数据
flush privileges;--刷新
OK! MySQL配置完成!
Hive安装
1、将hive的安装包 apache-hive-1.2.1-bin.tar,上传至 hadoop3的/home/software目录下,解压到/home目录下:
tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /home/
配置环境变量:修改/etc/profile文件,添加以下配置:
export HIVE_HOME=/home/apache-hive-1.2.1-bin
export PATH=$PATH:$HIVE_HOME/bin
保存退出,刷新缓存:
source /etc/profile
hadoop4执行相同操作。
2、配置服务端(hadoop3)。
进入hive安装目录下的conf目录,对hive自带的配置文件模板进行修改
cd /home/apache-hive-1.2.1-bin/conf
mv hive-default.xml.template hive-site.xml --系统加载配置时,会自动寻找名为hive-site.xml配置文件
vi hive-site.xml
删除<configuration>之间的原有配置,添加以下配置:
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hadoop1:3306/hive?createDatabaseIfNotExist=true</value> --配置mysql
</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>123</value>
</property>
此时,hive客户端的配置已经完成。
但是有个需要特别注意的地方:
Metastore Server 作为Hive服务端与MySQL数据库进行交互,必须要有驱动包才可以。需要把mysql的驱动包mysql-connector-java-5.1.32-bin 拷贝至 /home/apache-hive-1.2.1-bin/lib 目录下。
3、启动Hive服务端
hive --service metastore & ------ 末尾不加&为前台启动,加&为后台启动
4、配置客户端
cd /home/apache-hive-1.2.1-bin/conf
mv hive-default.xml.template hive-site.xml --系统加载配置时,会自动寻找名为hive-site.xml配置文件
vi hive-site.xml
删除<configuration>之间的原有配置,添加以下配置:
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
<property>
<name>hive.metastore.local</name>
<value>false</value>
</property>
<property>
<name>hive.metastore.uris</name>
<value>thrift://hadoop3:9083</value>
</property>
5、需要注意: hive 与 hadoop 各自有一个 jLine的jar包 , 要保证两个jLine 的版本一致。
cp /home/apache-hive-1.2.1-bin/lib/jline-2.12.jar /home/hadoop-2.5.1/share/hadoop/yarn/lib/
rm -f /home/hadoop-2.5.1/share/hadoop/yarn/lib/jline-0.9.94.jar
6、启动hive
[root@hadoop4 conf]# hive
17/05/01 19:56:03 WARN conf.HiveConf: HiveConf of name hive.metastore.local does not exist
Logging initialized using configuration in jar:file:/home/apache-hive-1.2.1-bin/lib/hive-common-1.2.1.jar!/hive-log4j.properties
hive>