在生产环境中使用Hive,强烈建议使用HiveServer2来提供服务,好处有:
在应用端不用部署Hadoop和Hive客户端;
相比hive-cli方式,HiveServer2不用直接将HDFS和Metastore暴漏给用户;
有安全认证机制,并且支持自定义权限校验;
有HA机制,解决应用端的并发和负载均衡问题
JDBC方式,可以使用任何语言,方便与应用进行数据交互;
从2.0开始,HiveServer2提供了WEB UI。
Hive从0.14开始,使用Zookeeper实现了HiveServer2的HA功能(ZooKeeperService Discovery),Client端可以通过指定一个nameSpace来连接HiveServer2,而不是指定某一个host和port。
1. hive-site.xml添加配置
hive.server2.support.dynamic.service.discovery
true
hive.server2.zookeeper.namespace
hiveserver2_zk
hive.zookeeper.quorum
zkNode1:2181,zkNode2:2181,zkNode3:2181
hive.zookeeper.client.port
2181
hive.server2.thrift.bind.host
0.0.0.0
hive.server2.thrift.port
10001