解决HBase整合Hive时一直连接地址为localhost:2181的zookeeper的问题
问题描述
我在搭建HBase集群整合hive的时候,hive一直连接本地的zookeeper,而不是连接HBase集群中配置的zk地址
起初以为HBase中 这个配置没有生效,
export HBASE_MANAGES_ZK=false
- 1
反复检查了配置,应该是没有问题
检查hive中的zookeeper,也是没有问题的。
最后发现
:默认为 localhost,必须进行配置ZooKeeper 集群的地址,除非zookeeper和hive在同一台服务器。
解决方法
解决方法:
修改hive配置文件
[along@hdp14 ~]$ cd /opt/bigdata/hive
[along@hdp14 hive]$ vim conf/
- 1
- 2
添加让如下内容,配置hbase的zookeeper
<!--Hbase 配置-->
<property>
<name></name>
<value>hdp16,hdp17,hdp18</value>
</property>
- 1
- 2
- 3
- 4
- 5
重启hive,问题解决
附录
一个分布式 HBase 集群的部署运行强烈依赖于 ZooKeeper,在当前的 HBase 系统实现中,ZooKeeper 扮演了非常重要的角色。在配置文件 conf/ 中配置与 ZooKeeper 相关的几个重要配置项:
- :默认为 localhost,必须进行配置。ZooKeeper 集群的地址。
- :默认为2181,可以不进行配置。
- :默认为 /hbase,可以不配置。HBase 在 ZooKeeper 的 zNode 根节点位置,每次 HBase 集群重启 zNode 都会重建,所以如果集群重启的话,重启之前直接删除该 zNode 也是没有问题的。
- :表示 RegionServer 与 ZooKeeper 之间的会话超时时间,一旦 session 超时,ZooKeeper 就会感知到,通知 Master 将对应的 RegionServer 移出集群,并将该 RegionServer 上所有 Region 迁移到集群中其他RegionServer。