解决HBase整合Hive时一直连接地址为localhost2181的zookeeper的问题

  • Post author:
  • Post category:其他




解决HBase整合Hive时一直连接地址为localhost:2181的zookeeper的问题



问题描述

我在搭建HBase集群整合hive的时候,hive一直连接本地的zookeeper,而不是连接HBase集群中配置的zk地址



1.HBase

起初以为HBase中hbase-env.sh 这个配置没有生效,

export HBASE_MANAGES_ZK=false

反复检查了配置,应该是没有问题



2.Hive

检查hive中的zookeeper,也是没有问题的。

最后发现


hbase.zookeeper.quorum

:默认为 localhost,必须进行配置ZooKeeper 集群的地址,除非zookeeper和hive在同一台服务器。



解决方法

解决方法:

修改hive配置文件

[along@hdp14 ~]$ cd /opt/bigdata/hive
[along@hdp14 hive]$ vim conf/hive-site.xml

添加让如下内容,配置hbase的zookeeper

<!--Hbase 配置-->
<property>
  <name>hbase.zookeeper.quorum</name>
  <value>hdp16,hdp17,hdp18</value>
</property>

重启hive,问题解决



附录

一个分布式 HBase 集群的部署运行强烈依赖于 ZooKeeper,在当前的 HBase 系统实现中,ZooKeeper 扮演了非常重要的角色。在配置文件 conf/hbase-site.xml 中配置与 ZooKeeper 相关的几个重要配置项:

  • hbase.zookeeper.quorum:默认为 localhost,必须进行配置。ZooKeeper 集群的地址。
  • hbase.zookeeper.property.clientPort:默认为2181,可以不进行配置。
  • zookeeper.znode.parent:默认为 /hbase,可以不配置。HBase 在 ZooKeeper 的 zNode 根节点位置,每次 HBase 集群重启 zNode 都会重建,所以如果集群重启的话,重启之前直接删除该 zNode 也是没有问题的。
  • zookeeper.session.timeout:表示 RegionServer 与 ZooKeeper 之间的会话超时时间,一旦 session 超时,ZooKeeper 就会感知到,通知 Master 将对应的 RegionServer 移出集群,并将该 RegionServer 上所有 Region 迁移到集群中其他RegionServer。



版权声明:本文为weixin_52918377原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。