配置HBASE2.4版本高可用使用外部zookeeper时遇到的问题

Posted EEEurekaaa!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了配置HBASE2.4版本高可用使用外部zookeeper时遇到的问题相关的知识,希望对你有一定的参考价值。

最近在配置hbase高可用(使用外部zookeeper)时,发现网上并没有现成的资料。下面是踩坑过程:

坑:

起初在hbase-site.xml直接将hdfs的文件目录以及端口直接写死,如下图

日志报错内容:

java.net.ConnectException: Call From node1/192.168.173.131 to node1:9000 failed on connection exception: java.net.ConnectException: 拒绝连接; For more details see:  http://wiki.apache.org/hadoop/ConnectionRefused
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at org.apache.hadoop.net.NetUtils.wrapWithMessage(NetUtils.java:824)
	at org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:754)
	at org.apache.hadoop.ipc.Client.getRpcResponse(Client.java:1544)
	at org.apache.hadoop.ipc.Client.call(Client.java:1486)
	at org.apache.hadoop.ipc.Client.call(Client.java:1385)
	at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:232)
	at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:118)
	at com.sun.proxy.$Proxy19.setSafeMode(Unknown Source)
	at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.setSafeMode(ClientNamenodeProtocolTranslatorPB.java:695)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

原因:

由于使用的是外部zookeeper,在启动的时候由于zookeeper的选举机制选举的namenode的active节点非node1时,会导致hbase访问hdfs时会被拒绝。因此进入不了hbase的webui界面。

解决方案:

之后不写定master和文件目录的主机名,如下图

 这样修改之后,hbase无法正常识别ns1是什么,所以我们还需要将hadoop中的core-site.xml文件和hdfs-site.xml文件移动到hbase/conf目录下。之后问题解决

此外真正的高可用还需要在hbase的conf目录下再添加一个back-msters文件,即备用master

 

以上是关于配置HBASE2.4版本高可用使用外部zookeeper时遇到的问题的主要内容,如果未能解决你的问题,请参考以下文章

一文读懂如何部署具有外部数据库的高可用 K3s

一文读懂如何部署具有外部数据库的高可用 K3s

基础组件1Flume入门Agent

K8s高可用+负载均衡集群

K8s高可用+负载均衡集群

高可用 Keycloak,K8s