hadoopHA高可用下部署大数据组件[master/master:16000:becomeActiveMaster] master.HMaster: ***** ABORTING master

异常信息

2023-10-27 22:12:23,674 ERROR [master/master:16000:becomeActiveMaster] master.HMaster: ***** ABORTING master master,16000,1698415940227: Unhandled exception. Starting shutdown. *****
org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.ipc.StandbyException): Operation category READ is not supported in state standby. Visit https://s.apache.org/sbnn-error

问题描述

这个问题是我部署hbase的时候遇到的,其实在hive部署也遇到过,问题大概就是因为master现在节点状态为standby,所以不能操作到账异常。这里遇到的时候我也奇怪,所以提问了csdn提问,具体我那个时候的描述都在里面。
异常信息:

hbase配置:

  <property>
        <!--是否开启hbase集群模式 -->
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>
        <property>
                <name>hbase.zookeeper.quorum</name>
                <value>master:2181,slave1:2181,slave2:2181,slave3:2181</value>
        </property>
        <property>
                <name>hbase.rootdir</name>
                <value>hdfs://master:8020/hbase</value>
        </property>

解决办法过程:

首先我也是像大家一样百度子类的,但是基本上但是让我将hdfs://master:8020/hbase改为active的节点或者是在hbase-site.xml添加以下配置,但是基本上没有效果。

        <property>
                <name>hbase.unsafe.stream.capability.enforce</name>
                <value>false</value>
        </property>

后来我开始整体反推,首先确定这个问题一定是配置出问题。
我的集群是高可用的,如果现在我的hdfs://master:8020/hbase改成hdfs://slave1:8020/hbase,然后salve1故障,master变成active,那这个问题还是一样会出现。
hadoop作为一个成熟的框架这种问题不可能没有考虑,于是我开始找非高可用的hadoop配置,果然发现了。

  1. 首先比对hadoop的core-site.xml

非高可用的fs.defaultFS配置项

        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://master:8020</value>
        </property>

高可用的fs.defaultFS配置项

        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://mycluster</value>
        </property>

可以发现,非高可用fs.defaultFS配置项是配置了单个namenode的RPC 通信地址,而高可用的fs.defaultFS配置项是配置了集群名称,其他的RPC 通信地址之类的都在hdfs-site.xml中配置了。

而hbase的hbase.rootdir这个配置项作用:告诉HBase,它的数据存储在何处。这里,它设置为hdfs://master:8020/hbase,意味着HBase将在Hadoop分布式文件系统(HDFS)上存储其数据,/hbase是HBase在HDFS上的根目录。

  1. 分析和推导可行方法

这就回到了原来的问题,现在master是standby所以不能对他操作。即使改成为active的节点等到遇到故障自动转移了,一样出现这个问题。
我就想着将hdfs://master:8020/hbase改成hdfs://mycluster:8020/hbase这样不就好了,这样直接指定集群名称,hadoop应该会自动选择。说干就干。

修改hbase配置:

  <property>
        <!--是否开启hbase集群模式 -->
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>
        <property>
                <name>hbase.zookeeper.quorum</name>
                <value>master:2181,slave1:2181,slave2:2181,slave3:2181</value>
        </property>
        <property>
                <name>hbase.rootdir</name>
                <value>hdfs://mycluster:8020/hbase</value>
        </property>
        <property>
                <name>hbase.unsafe.stream.capability.enforce</name>
                <value>false</value>
        </property>

重新启动habse,nice直接成功,查看日志没有异常,节点稳定运行。

可能理解解释不是很好很正确,还请各位资深牛人多多指教改正。有不同看法的也可以评论我们讨论讨论。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 这个问题可能是由于 Hadoop 集群中的某些节点出现了故障或网络问题导致的。您可以尝试重新启动 Hadoop 集群中的所有节点,或者检查 Hadoop 集群的配置是否正确。如果问题仍然存在,请查看 Hadoop 集群的日志文件以获取更多详细信息。 ### 回答2: 在解决"ERROR [master/spark-hdp-master-1:16000:becomeActiveMaster] master.HMaster: Failed to become active master"错误时,可以尝试以下几个步骤: 1. 检查网络连接:首先,确保网络连接是正常的,这个错误可能是由于网络连接出现问题导致的。可以尝试重启网络设备,或者检查网络配置文件是否正确。 2. 检查Master节点状态:检查Master节点的状态,确保它运行正常并且没有任何错误。可以查看Master节点的日志文件,检查是否有其他错误或异常。 3. 检查配置文件:确认Hadoop集群的相关配置文件是否正确。检查HBase的配置文件,确保所有必要的配置项都已正确设置。特别要注意检查HBase的主备节点配置项,确保所有节点都正确配置。 4. 检查端口和防火墙:确认相关端口是否被阻止或被其他服务占用。可以检查防火墙设置,确保相关端口是开放的。如果端口被其他服务占用,可以尝试更改HBase的端口设置。 5. 检查内存和磁盘空间:确保Master节点上有足够的内存和磁盘空间,以便正常运行HBase。可以通过查看系统资源使用情况来确认。 6. 检查依赖项:检查是否缺少任何必要的库或依赖项。确保所有依赖项都已正确安装和配置。 如果上述步骤都没有解决问题,建议查看更详细的错误日志,以获取更多信息。根据错误日志,可以尝试搜索相关错误消息,查找其他用户可能遇到过的相似问题和解决方案。最后,如果问题仍然存在,建议向HBase社区或专业技术支持提问,以获取更专业的帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值