HRegionServer无法启动,启动hbase后马上挂掉的问题

把这次解决这个问题的操作记录下来,虽然还未搞清楚缘由,下次有空把hbase源码看一看。

自己搭建了个伪分布式的hbase环境,配置好hbase-env.sh、hbase-site.xml、regionservers后启动hbase,使用hbase shell能正常建表等操作。然而idea代码连接却一直日志显示在一处不再动,很久后才报连接异常。

2016-11-12 10:24:35,646 INFO  org.apache.zookeeper.ZooKeeper.<init>(ZooKeeper.java:438) - Initiating client connection, connectString=10.46.179.206:2181 sessionTimeout=90000 watcher=hconnection-0x1c154c2, quorum=10.46.179.206:2181, baseZNode=/hbase
2016-11-12 10:24:35,684 INFO  org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper.<init>(RecoverableZooKeeper.java:120) - Process identifier=hconnection-0x1c154c2 connecting to ZooKeeper ensemble=10.46.179.206:2181
2016-11-12 10:24:35,685 INFO  org.apache.zookeeper.ClientCnxn$SendThread.logStartConnect(ClientCnxn.java:975) - Opening socket connection to server 10.46.179.206/10.46.179.206:2181. Will not attempt to authenticate using SASL (unknown error)
2016-11-12 10:24:35,696 INFO  org.apache.zookeeper.ClientCnxn$SendThread.primeConnection(ClientCnxn.java:852) - Socket connection established to 10.46.179.206/10.46.179.206:2181, initiating session
2016-11-12 10:24:35,736 INFO  org.apache.zookeeper.ClientCnxn$SendThread.onConnected(ClientCnxn.java:1235) - Session establishment complete on server 10.46.179.206/10.46.179.206:2181, sessionid = 0x158568b878d0009, negotiated timeout = 90000

发现HRegionServer没启动起来。异常日志为:


ERROR [main] regionserver.HRegionServerCommandLine: Region server exiting
java.lang.RuntimeException: HRegionServer Aborted
        at org.apache.hadoop.hbase.regionserver.HRegionServerCommandLine.start(HRegionServerCommandLine.java:66)
        at org.apache.hadoop.hbase.regionserver.HRegionServerCommandLine.run(HRegionServerCommandLine.java:85)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
        at org.apache.hadoop.hbase.util.ServerCommandLine.doMain(ServerCommandLine.java:126)
        at org.apache.hadoop.hbase.regionserver.HRegionServer.main(HRegionServer.java:2400)

然后各种搜索对比,尝试了下面各种方法,如:
更改hbase.cluster.distributed属性、hbase.zookeeper.quorum属性、HBASE_MANAGES_ZK属性, 关闭ipv6, 更改regionservers为localhost,更改regionservers文件和hosts文件内的换行符等….皆未见效。
然后刚刚网上看了两篇解决方法,把hosts文件里其它名都注释掉,只留下当前服务器hostname(因为是单机,就只留了一个)。重启,还是不行,再搜,再把配置里一堆乱七八糟的去掉。配置如下:
hbase-site.xml:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>

   <property>
    <name>hbase.tmp.dir</name>
    <value>/home/hadoop/hbase/tmp/hbase</value>
   </property>
  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://10.46.179.206:9000/hbase</value>    
  </property>
  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>    
  </property>
  <property>
    <name>hbase.zookeeper.quorum</name>
    <value>ubuntu206</value>    
  </property>
  <property>
    <name>zookeeper.znode.parent</name>
    <value>/hbase</value>    
  </property>  
  <property>
    <name>hbase.superuser</name>
    <value>hadoop</value>   
  </property>
  <property>
    <!--这里配在hbase能访问到的-->
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/home/hadoop/zookeeperData</value>    
  </property>
  <property>
    <name>hbase.zookeeper.property.clientPort</name>
    <value>2181</value>    
  </property> 
  <property> 
    <!-- 这个配置后面去掉了也能正常运行 -->
    <name>hbase.coprocessor.abortonerror</name>
    <value>false</value>
  </property>
</configuration>

hbase-env.sh:

export JAVA_HOME="/usr/jdk/linux"
export HBASE_CLASSPATH=$HADOOP_HOME/conf
export HBASE_MANAGES_ZK=false

regionservers:

ubuntu206

之后启动hbase,终于把HregionServer启动起来了,客户端也能正常连接了。
正常后把hosts配置上别的再重启也不影响,问题可能还是出在hbase-site.xml里多配了些什么东西且配错了。

另,hbase正常后,之前kafka客户端连接异常的问题也好了,不管kafka server.properties 内host.name配为主机名还是ip地址都是OK的。。。有点莫名其妙. - -# 。

启发的两篇文章链接也放这:
http://cache.baiducontent.com/c?m=9d78d513d98306f31eb6cb291a17a7315305d7217a8c8d4968d5e35f92174c41363ca3ec72794d58c4c40c2656ef0d0baae7360364537df7dd9fde5e9afbcc2775ce6176671df55c0f924efa9411798774c31db7e90ee7cda16fccb391cedc5650c851077882f2895e0210ce6af2&p=8636da16d9c117ef08e2977e0c419d&newp=99678e5f88904ead08e2977e0c579f231610db2151d7d3116b82c825d7331b001c3bbfb42323160ed6cf7a6401ae4258ebf532783d0221a3dda5c91d9fb4c57479&user=baidu&fm=sc&query=RuntimeException%3A+HRegionServer+Aborted&qid=c9c23e7c00016d67&p1=2

http://cache.baiducontent.com/c?m=9d78d513d98306f31eb6cb291a17a7315305d7217a8c8d4968d5e35f92174c41363ca3ec72794d58c4c40c2656ef0d0baae7360364537df7dd9fde5e9afbcc2775ce6176671df55c0f8347f29e5125b671d10cb5b81990e6a7748ee9d0d0dc5154c8580f719da3cb1c5b459438ed4266a5f5c216544217b8e93265fe5c76&p=8e3ec54ad5c34be413be9b7c5605a5&newp=8b2a975689840eb405bd9b7d0d1ccf231610db2151d4d61f6b82c825d7331b001c3bbfb423231706d8ce766502af4a5ee9f3377237092ba3dda5c91d9fb4c574799b78733f07db&user=baidu&fm=sc&query=RuntimeException%3A+HRegionServer+Aborted&qid=c9c23e7c00016d67&p1=1

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 当HBase的HRegionServer挂掉时,可能会导致数据不可用或无法访问。此时需要进行以下操作: 1. 检查HRegionServer的日志,查看是否有异常或错误信息。 2. 检查Hadoop集群的状态,确保所有节点都正常运行。 3. 尝试重启HRegionServer,如果无法重启,则需要进行故障排除。 4. 如果HRegionServer无法恢复,则需要进行数据恢复操作,例如使用备份数据或从其他节点复制数据。 5. 在HBase集群中使用多个HRegionServer可以提高可用性和性能,因此建议使用多个HRegionServer来避免单点故障。 ### 回答2: 当HBase的HRegionServer挂掉时,会对整个HBase集群造成严重的影响。因为HBase是基于分布式架构的,HRegionServer是其中一个重要的组成部分。因此,如果一个或多个HRegionServer挂掉,会导致HBase集群无法正常工作。 造成HRegionServer挂掉的原因有很多,比如网络故障、硬件故障、软件异常等。无论是哪种原因,都需要采取相应的措施来解决问题,以保证HBase集群的稳定运行。 首先,我们需要检查HRegionServer挂掉的原因。我们可以查看日志文件或者使用命令行工具来获取更多的信息。一旦我们确定了原因,我们就可以采取相应的措施来解决问题。 如果是硬件故障,我们需要更换或修理故障的硬件设备。如果是网络故障,我们需要检查网络连接并修复故障。如果是软件异常,我们可以尝试重新启动HRegionServer或者在其他节点上重新启动服务。 此外,为了避免HRegionServer挂掉的情况,我们还可以采取一些预防措施。比如,我们可以在HBase集群中添加足够的备用节点,以便在出现故障时可以快速地替换故障节点。我们也可以使用监控工具来监控HBase集群的运行状况,及时发现并解决问题。 总之,HBase的HRegionServer挂掉是一个严重的问题,需要及时采取措施来解决。我们需要对HBase集群的运行状况进行严密的监控,及时处理任何可能导致故障的问题,以保证HBase集群的持续稳定运行。 ### 回答3: HBase是一种可扩展的面向列的NoSQL数据库,与关系数据库不同,它可以处理分布式数据存储。HRegionServerHBase中重要的组件之一。它被设计用于处理HBase表中特定的数据区域,即Region。如果HRegionServer挂掉了,HBase表中包含的数据区域就需要重新分配到其他HRegionServer的实例上。 HRegionServer的故障可能是由多种原因造成的。可能是由于操作系统内存不足,硬件故障、网络故障或其他问题造成的。当HRegionServer挂掉时,HBase集群就会变得不可用,除非故障的节点上的HRegionServer被替换或恢复。 为了避免这种情况,HBase管理员应该监视HRegionServer的健康状况。当发现HRegionServer故障时,管理员应该采取以下步骤: 1. 确认问题:首先需要确认HRegionServer确实已经挂掉,而不是网络或其他问题导致的连接问题。可以通过查看日志文件或检查监控工具来确认。 2. 重新分配Region:当确认HRegionServer已经挂掉时,HBase会自动重新分配该HRegionServer上的Region到其他可用节点。这需要一定的时间,但不会影响对HBase表的读取和写入。 3. 恢复:如果HRegionServer上的数据对于生产环境非常重要,则需要尽快恢复。可以通过停止并重新启动HRegionServer来实现。重新启动后,HBase将自动分配该HRegionServer上的Region。 4. 预防:为了避免HRegionServer故障,HBase管理员可以采取措施,如监视HRegionServer的健康状况,规划适当的负载均衡策略,定期备份数据等。 总之,HRegionServer挂掉后需要进行重新分配Region和恢复。为了避免发生此类故障,管理员需要监视HRegionServer的健康状况,并采取预防措施。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值