赞
踩
Hive从0.14开始,使用Zookeeper实现了HiveServer2的HA功能(ZooKeeper Service Discovery),Client端可以通过指定一个nameSpace来连接HiveServer2,而不是指定某一个host和port。
如果使用HiveServer2的Client并发比较少,可以使用一个HiveServer2实例。
但如果这一个实例挂掉,那么会导致所有的应用连接失败。
如上图,这边准备在node1和node2上分别启用两个HiveServer2的实例,并通过zookeeper完成HA的配置
zookeep已经安装好,并可用。hive单机已经可用。
在两个安装了apache-hive-2.0.0-bin的机器上,分别编辑hive-site.xml,添加以下参数:
<property>
<name>hive.server2.support.dynamic.service.discovery</name>
<value>true</value>
</property>
<property>
<name>hive.server2.zookeeper.namespace</name>
<value>hiveserver2</value>
</property>
<property>
<name>hive.zookeeper.quorum</name>
<value> zkNode1:2181,zkNode2:2181,zkNode3:2181</value>
</property>
<property>
<name>hive.zookeeper.client.port</name>
<value>2181</value>
</property>
<property>
<name>hive.server2.thrift.port</name>
<value>10000</value> //两个HiveServer2实例的端口号要一致
</property>
数据库的配置记得修改成数据库所在节点的位置。这边数据库安装在node1节点上。
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://node1:3306/hive?createDatabaseIfNotExist=true</value>
通过hiveserver2 启动后(日志中会出现如下警告,不影响使用)
,查看源码,和配置没有找到出问题的原因。可以通过安装tez消除这个警告。
,在zookeeper中可以看到相关实例。
如果通过beeline jdbc:hive2://<zookeeper quorum>/<dbName>;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2 连接出现以下错误。需要在hdfs core-site.xml中添加如下配置:
Error: Could not open client transport for any of the Server URI's in ZooKeeper: Failed to open new session: java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): User: hive is not allowed to impersonate hive (state=08S01,code=0
hadoop.proxyuser.hive.groups
hadoop.proxyuser.hive.hosts
其中 hive为启动HiveServer2的用户,然后刷新配置:
yarn rmadmin -refreshSuperUserGroupsConfiguration
hdfs dfsadmin -refreshSuperUserGroupsConfiguration
beeline
!connect jdbc:hive2://node1:2181,node2:2181,node3:2181,node4:2181/userdb;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2
select * from employee;
至此,HiveServer2的多实例高可用-Ha配置完成,的确能解决生产中的很多问题,比如:并发、负载均衡、单点故障、安全等等。
因此强烈建议在生产环境中使用该模式来提供Hive服务。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。