Hive 高可用HA搭建

1、使用HiveServer2提供HA的好处

  • 1. 在应用端不用部署Hadoop和Hive客户端;
  • 2. 相比hive-cli方式,HiveServer2不用直接将HDFS和Metastore暴漏给用户;
  • 3. 有安全认证机制,并且支持自定义权限校验;
  • 4. 有HA机制,解决应用端的并发和负载均衡问题;
  • 5. JDBC方式,可以使用任何语言,方便与应用进行数据交互;
  • 6. 从2.0开始,HiveServer2提供了WEB UI。

 

Hive从0.14开始,使用Zookeeper实现了HiveServer2的HA功能(ZooKeeper Service Discovery),Client端可以通过指定一个nameSpace来连接HiveServer2,而不是指定某一个host和port。

如果使用HiveServer2的Client并发比较少,可以使用一个HiveServer2实例。

Hive 高可用HA搭建_第1张图片

但如果这一个实例挂掉,那么会导致所有的应用连接失败。

Hive 高可用HA搭建_第2张图片

如上图,这边准备在node1和node2上分别启用两个HiveServer2的实例,并通过zookeeper完成HA的配置

2、配置

zookeep已经安装好,并可用。hive单机已经可用。

在两个安装了apache-hive-2.0.0-bin的机器上,分别编辑hive-site.xml,添加以下参数:

 

hive.server2.support.dynamic.service.discovery

true

 

hive.server2.zookeeper.namespace

hiveserver2

 

hive.zookeeper.quorum

zkNode1:2181,zkNode2:2181,zkNode3:2181

 

hive.zookeeper.client.port

2181

 

hive.server2.thrift.port

10000 //两个HiveServer2实例的端口号要一致

数据库的配置记得修改成数据库所在节点的位置。这边数据库安装在node1节点上。

javax.jdo.option.ConnectionURL

jdbc:mysql://node1:3306/hive?createDatabaseIfNotExist=true

3、测试

通过hiveserver2 启动后(日志中会出现如下警告,不影响使用)

Hive 高可用HA搭建_第3张图片

,查看源码,和配置没有找到出问题的原因。可以通过安装tez消除这个警告。

Hive 高可用HA搭建_第4张图片

,在zookeeper中可以看到相关实例。

如果通过beeline jdbc:hive2:///;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

Hive 高可用HA搭建_第5张图片

 

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;

Hive 高可用HA搭建_第6张图片

至此,HiveServer2的多实例高可用-Ha配置完成,的确能解决生产中的很多问题,比如:并发、负载均衡、单点故障、安全等等。

因此强烈建议在生产环境中使用该模式来提供Hive服务。

 

你可能感兴趣的:(Hive,开源框架使用,hive)