[HBase]ERROR: Region is not online

46 篇文章 1 订阅
23 篇文章 0 订阅

重启HBase后,进入hbase shell 进行 scan 、get 、create等操作均报错:

scan 'table1'
ERROR: org.apache.hadoop.hbase.NotServingRegionException: org.apache.hadoop.hbase.NotServingRegionException: Region is not online: .META.,,1
        at org.apache.hadoop.hbase.regionserver.HRegionServer.getRegion(HRegionServer.java:3154)
        at org.apache.hadoop.hbase.regionserver.HRegionServer.getClosestRowBefore(HRegionServer.java:1974)
        at sun.reflect.GeneratedMethodAccessor11.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.hadoop.hbase.ipc.WritableRpcEngine$Server.call(WritableRpcEngine.java:364)
        at org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:1400)

查看日志,只发现如下警告,为什么呢?

WARN org.apache.hadoop.hbase.regionserver.wal.HLog: HDFS pipeline error detected. Found 2 replicas but expecting no less than 3 replicas.  Requesting close of hlog.

找了很久才发现,原来是由于集群中各节点的时间不一致造成RegionServer启动失败:集群节点和master的时间误差阀值由hbase.master.maxclockskew参数设定的。

1.解决方法1,将参数值增加到5分钟
在hbase-site.xml添加配置

<property>
        <name>hbase.master.maxclockskew</name>
        <value>300000</value>
        <description>Time difference of regionserver from master</description>
 </property>

2.方案2
修改各结点时间,使其误差在30s内


参Linux 修改时间:

Linux 时间修改 不重启修改时区

一、修改linux的时间
root使用date指令:date -s
1、只修改日期,不修改时间,输入:
Linux代码

   1. date -s 2007-08-03  

date -s 2007-08-03


2、只修改时间,输入:
Linux代码

   1. date -s 14:15:00  

date -s 14:15:00


3、同时修改日期时间,注意要加双引号,日期与时间之间有一空格,输入:
Linux代码

   1. date -s "2007-08-03 14:15:00"  

       date -s "2007-08-03 14:15:00"


4、修改完后,记得输入:
Linux代码

   1. clock -w   

clock -w 


把系统时间写入CMOS


二、修改时区不重启
 查看当前时区
 date -R

在root下
1、复制相应的时区文件,替换系统时区文件:
Linux代码

   1. cp /usr/share/zoneinfo/$主时区/$次时区 /etc/localtime  

cp /usr/share/zoneinfo/$主时区/$次时区 /etc/localtime

例如:
Linux代码

   1. cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime  

      cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime



2、将当前时间和日期写入BIOS,避免重启后失效
Linux代码

   hwclock  --set --date "2013-01-24 11:22:44"
或者:(直接将当前系统时间写入BIOS)
   hwclock -w 

3、将系统时间和硬件时间同步
  hwclock –s

  hwclock --hctosys

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值