分享

regionserver无法启动错误

HawCHing 发表于 2016-1-22 10:16:24 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 9 35380
之前搭了一套HDP的环境,今天突然发现一台机的regionserver起不来,大致报错是canot get log writer,请问有遇到过的吗?!

错误日志:
2016-01-21 16:01:08,187 INFO  [regionserver60020-SendThread(hdp02.hadoop:2181)] zookeeper.ClientCnxn: Session establishment complete on server hdp02.hadoop/192.168.2.66:2181, sessionid = 0x252626b38c4001a, negotiated timeout = 40000
2016-01-21 16:01:11,368 INFO  [main] regionserver.ShutdownHook: Installed shutdown hook thread: Shutdownhook:regionserver60020
2016-01-21 16:01:11,502 INFO  [regionserver60020] regionserver.HRegionServer: ClusterId : ddfe809b-3226-4893-88fc-8ce79ae8fed7
2016-01-21 16:01:11,526 INFO  [regionserver60020] procedure.RegionServerProcedureManagerHost: Procedure online-snapshot is initializing
2016-01-21 16:01:11,562 INFO  [regionserver60020] zookeeper.RecoverableZooKeeper: Node /hbase/online-snapshot/acquired already exists and this is not a retry
2016-01-21 16:01:11,588 INFO  [regionserver60020] procedure.RegionServerProcedureManagerHost: Procedure online-snapshot is initialized
2016-01-21 16:01:11,613 INFO  [regionserver60020] regionserver.MemStoreFlusher: globalMemStoreLimit=401.6 M, globalMemStoreLimitLowMark=381.5 M, maxHeap=1004 M
2016-01-21 16:01:11,618 INFO  [regionserver60020] regionserver.HRegionServer: CompactionChecker runs every 10sec
2016-01-21 16:01:11,679 INFO  [regionserver60020] regionserver.HRegionServer: reportForDuty to master=hdp01.hadoop,60000,1453356237814 with port=60020, startcode=1453363264452
2016-01-21 16:01:11,984 INFO  [regionserver60020] Configuration.deprecation: fs.default.name is deprecated. Instead, use fs.defaultFS
2016-01-21 16:01:11,984 INFO  [regionserver60020] Configuration.deprecation: mapred.task.id is deprecated. Instead, use mapreduce.task.attempt.id
2016-01-21 16:01:12,141 INFO  [regionserver60020] fs.HFileSystem: Added intercepting call to namenode#getBlockLocations so can do block reordering using class class org.apache.hadoop.hbase.fs.HFileSystem$ReorderWALBlocks
2016-01-21 16:01:12,693 INFO  [regionserver60020] wal.FSHLog: WAL/HLog configuration: blocksize=128 MB, rollsize=121.60 MB, enabled=true
2016-01-21 16:01:12,855 INFO  [regionserver60020]        
2016-01-21 16:01:12,856 ERROR [regionserver60020] regionserver.HRegionServer: Failed init
java.io.IOException: cannot get log writer
        at org.apache.hadoop.hbase.regionserver.wal.HLogFactory.createWriter(HLogFactory.java:201)
        at org.apache.hadoop.hbase.regionserver.wal.HLogFactory.createWALWriter(HLogFactory.java:181)
        at org.apache.hadoop.hbase.regionserver.wal.FSHLog.createWriterInstance(FSHLog.java:619)
        at org.apache.hadoop.hbase.regionserver.wal.FSHLog.rollWriter(FSHLog.java:545)
        at org.apache.hadoop.hbase.regionserver.wal.FSHLog.rollWriter(FSHLog.java:502)
        at org.apache.hadoop.hbase.regionserver.wal.FSHLog.<init>(FSHLog.java:417)
        at org.apache.hadoop.hbase.regionserver.wal.FSHLog.<init>(FSHLog.java:333)
        at org.apache.hadoop.hbase.regionserver.wal.HLogFactory.createHLog(HLogFactory.java:56)
        at org.apache.hadoop.hbase.regionserver.HRegionServer.instantiateHLog(HRegionServer.java:1607)
        at org.apache.hadoop.hbase.regionserver.HRegionServer.setupWALAndReplication(HRegionServer.java:1586)
        at org.apache.hadoop.hbase.regionserver.HRegionServer.handleReportForDutyResponse(HRegionServer.java:1341)
        at org.apache.hadoop.hbase.regionserver.HRegionServer.run(HRegionServer.java:899)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.UnsupportedOperationException: Unable to find org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec
        at org.apache.hadoop.hbase.util.ReflectionUtils.instantiateWithCustomCtor(ReflectionUtils.java:36)
        at org.apache.hadoop.hbase.regionserver.wal.WALCellCodec.create(WALCellCodec.java:102)
        at org.apache.hadoop.hbase.regionserver.wal.ProtobufLogWriter.getCodec(ProtobufLogWriter.java:58)
        at org.apache.hadoop.hbase.regionserver.wal.ProtobufLogWriter.initAfterHeader(ProtobufLogWriter.java:103)
        at org.apache.hadoop.hbase.regionserver.wal.ProtobufLogWriter.init(ProtobufLogWriter.java:93)
        at org.apache.hadoop.hbase.regionserver.wal.HLogFactory.createWriter(HLogFactory.java:198)
        ... 12 more
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:190)
        at org.apache.hadoop.hbase.util.ReflectionUtils.instantiateWithCustomCtor(ReflectionUtils.java:32)
        ... 17 more
2016-01-21 16:01:12,859 FATAL [regionserver60020] regionserver.HRegionServer: ABORTING region server hdp02.hadoop,60020,1453363264452: Unhandled: cannot get log writer
java.io.IOException: cannot get log writer
        at org.apache.hadoop.hbase.regionserver.wal.HLogFactory.createWriter(HLogFactory.java:201)
        at org.apache.hadoop.hbase.regionserver.wal.HLogFactory.createWALWriter(HLogFactory.java:181)
        at org.apache.hadoop.hbase.regionserver.wal.FSHLog.createWriterInstance(FSHLog.java:619)
        at org.apache.hadoop.hbase.regionserver.wal.FSHLog.rollWriter(FSHLog.java:545)
        at org.apache.hadoop.hbase.regionserver.wal.FSHLog.rollWriter(FSHLog.java:502)
        at org.apache.hadoop.hbase.regionserver.wal.FSHLog.<init>(FSHLog.java:417)
        at org.apache.hadoop.hbase.regionserver.wal.FSHLog.<init>(FSHLog.java:333)
        at org.apache.hadoop.hbase.regionserver.wal.HLogFactory.createHLog(HLogFactory.java:56)
        at org.apache.hadoop.hbase.regionserver.HRegionServer.instantiateHLog(HRegionServer.java:1607)
        at org.apache.hadoop.hbase.regionserver.HRegionServer.setupWALAndReplication(HRegionServer.java:1586)
        at org.apache.hadoop.hbase.regionserver.HRegionServer.handleReportForDutyResponse(HRegionServer.java:1341)
        at org.apache.hadoop.hbase.regionserver.HRegionServer.run(HRegionServer.java:899)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.UnsupportedOperationException: Unable to find org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec

已有(9)人评论

跳转到指定楼层
HawCHing 发表于 2016-1-22 10:18:40
怀疑过权限问题,然后我在这台机用hbase用户试过写日志的目录(HDFS的/hbase/WALs目录),结果是有权限的。

如下:
[root@hdp02 hbase]# su - hbase
[hbase@hdp02 ~]$ ll
total 0
[hbase@hdp02 ~]$ hdfs dfs -ls /hbase
Found 8 items
drwxr-xr-x   - hbase hdfs          0 2016-01-22 09:27 /hbase/.tmp
drwxr-xr-x   - hbase hdfs          0 2016-01-22 09:32 /hbase/WALs
drwxr-xr-x   - hbase hdfs          0 2016-01-21 18:19 /hbase/archive
drwxr-xr-x   - hbase hdfs          0 2016-01-21 12:34 /hbase/corrupt
drwxr-xr-x   - hbase hdfs          0 2016-01-21 12:34 /hbase/data
-rw-r--r--   3 hbase hdfs         42 2016-01-21 12:33 /hbase/hbase.id
-rw-r--r--   3 hbase hdfs          7 2016-01-21 12:33 /hbase/hbase.version
drwxr-xr-x   - hbase hdfs          0 2016-01-22 09:43 /hbase/oldWALs
[hbase@hdp02 ~]$ hdfs dfs -ls /hbase/WALS
ls: `/hbase/WALS': No such file or directory
[hbase@hdp02 ~]$ hdfs dfs -ls /hbase/WALs
Found 2 items
drwxr-xr-x   - hbase hdfs          0 2016-01-22 09:29 /hbase/WALs/hdp01.hadoop,60020,1453426149194
drwxr-xr-x   - hbase hdfs          0 2016-01-22 09:30 /hbase/WALs/hdp03.hadoop,60020,1453426140288
[hbase@hdp02 ~]$
[hbase@hdp02 ~]$
[hbase@hdp02 ~]$ id
uid=1002(hbase) gid=500(hadoop) groups=500(hadoop)
[hbase@hdp02 ~]$ hdfs dfs -put /etc/profile  /hbase/WALs/hdp02-tmp
[hbase@hdp02 ~]$ hdfs dfs -ls /hbase/WALs
Found 3 items
drwxr-xr-x   - hbase hdfs          0 2016-01-22 09:29 /hbase/WALs/hdp01.hadoop,60020,1453426149194
-rw-r--r--   3 hbase hdfs       1796 2016-01-22 10:13 /hbase/WALs/hdp02-tmp
drwxr-xr-x   - hbase hdfs          0 2016-01-22 09:30 /hbase/WALs/hdp03.hadoop,60020,1453426140288
[hbase@hdp02 ~]$


所以怀疑是不是regionserver启动的时候调用写日志组件有错,但是又不清楚写日志用到的是哪个组件、有人帮忙分析下么,谢谢
回复

使用道具 举报

bob007 发表于 2016-1-22 10:50:53
HawCHing 发表于 2016-1-22 10:18
怀疑过权限问题,然后我在这台机用hbase用户试过写日志的目录(HDFS的/hbase/WALs目录),结果是有权限的。 ...

这样测试时不准确的。
1.首先你启用允许写hbase日志
2.看日志是否增加
3.你也可以禁用写日志,既然禁用了,那么就不会调用了, 当然也不会写这个了。

仅供参考。
hbase 0.98如何禁用hlog日志
http://www.aboutyun.com/thread-13601-1-1.html



回复

使用道具 举报

Alkaloid0515 发表于 2016-1-22 11:00:39
还有一点可疑的是ClusterId ,看看是否与namenode一致
ClusterId : ddfe809b-3226-4893-88fc-8ce79ae8fed7

回复

使用道具 举报

HawCHing 发表于 2016-1-23 09:55:38
Alkaloid0515 发表于 2016-1-22 11:00
还有一点可疑的是ClusterId ,看看是否与namenode一致
ClusterId : ddfe809b-3226-4893-88fc-8ce79ae8fed7 ...

谢谢,我检查了clusterID是一样的,因为我用ambari自动部署的,然后用了几次,突然regionserver一个起不来,其他regionserver配置都是一样的,我再次检查了一下,感觉是不是需要用到WALs的某个jar有损坏之类...
回复

使用道具 举报

HawCHing 发表于 2016-1-23 09:57:36
bob007 发表于 2016-1-22 10:50
这样测试时不准确的。
1.首先你启用允许写hbase日志
2.看日志是否增加

这个配置是在hbase-site.xml里配置的吗?我大概只找到
   <property>
      <name>hbase.regionserver.wal.codec</name>
      <value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value>
    </property>

这个配置,请问这个是怎么理解,写WALS是用的哪个组件或者jar呢,我想检查下是不是文件有损坏。

因为所有regionserver 配置是一样的,不可能一个启动wals一个没启用,怀疑是文件损坏或者权限问题。。。
回复

使用道具 举报

HawCHing 发表于 2016-1-23 09:58:22
贴一下regionserver的hbase-site.xml
--------------------------------------------------------------------
<configuration>
   
    <property>
      <name>dfs.domain.socket.path</name>
      <value>/var/lib/hadoop-hdfs/dn_socket</value>
    </property>
   
    <property>
      <name>hbase.bulkload.staging.dir</name>
      <value>/apps/hbase/staging</value>
    </property>
   
    <property>
      <name>hbase.client.keyvalue.maxsize</name>
      <value>1048576</value>
    </property>
   
    <property>
      <name>hbase.client.retries.number</name>
      <value>35</value>
    </property>
   
    <property>
      <name>hbase.client.scanner.caching</name>
      <value>100</value>
    </property>
   
    <property>
      <name>hbase.cluster.distributed</name>
      <value>true</value>
    </property>
   
    <property>
      <name>hbase.coprocessor.master.classes</name>
      <value></value>
    </property>
   
    <property>
      <name>hbase.coprocessor.region.classes</name>
      <value>org.apache.hadoop.hbase.security.access.SecureBulkLoadEndpoint</value>
    </property>
   
    <property>
      <name>hbase.defaults.for.version.skip</name>
      <value>true</value>
    </property>
   
    <property>
      <name>hbase.hregion.majorcompaction</name>
      <value>604800000</value>
    </property>
   
    <property>
      <name>hbase.hregion.majorcompaction.jitter</name>
      <value>0.50</value>
    </property>
   
    <property>
      <name>hbase.hregion.max.filesize</name>
      <value>10737418240</value>
    </property>
   
    <property>
      <name>hbase.hregion.memstore.block.multiplier</name>
      <value>4</value>
    </property>
   
    <property>
      <name>hbase.hregion.memstore.flush.size</name>
      <value>134217728</value>
    </property>
   
    <property>
      <name>hbase.hregion.memstore.mslab.enabled</name>
      <value>true</value>
    </property>
   
    <property>
      <name>hbase.hstore.blockingStoreFiles</name>
      <value>10</value>
    </property>
   
    <property>
      <name>hbase.hstore.compaction.max</name>
      <value>10</value>
    </property>
   
    <property>
      <name>hbase.hstore.compactionThreshold</name>
      <value>3</value>
    </property>
   
    <property>
      <name>hbase.local.dir</name>
      <value>${hbase.tmp.dir}/local</value>
    </property>
   
    <property>
      <name>hbase.master.info.bindAddress</name>
      <value>0.0.0.0</value>
    </property>
   
    <property>
      <name>hbase.master.info.port</name>
      <value>60010</value>
    </property>
   
    <property>
      <name>hbase.master.port</name>
      <value>60000</value>
    </property>
   
    <property>
      <name>hbase.region.server.rpc.scheduler.factory.class</name>
      <value></value>
    </property>
   
    <property>
      <name>hbase.regionserver.global.memstore.lowerLimit</name>
      <value>0.38</value>
    </property>
   
    <property>
      <name>hbase.regionserver.global.memstore.size</name>
      <value>0.4</value>
    </property>
   
    <property>
      <name>hbase.regionserver.global.memstore.upperLimit</name>
      <value>0.4</value>
    </property>
   
    <property>
      <name>hbase.regionserver.handler.count</name>
      <value>30</value>
    </property>
   
    <property>
      <name>hbase.regionserver.info.port</name>
      <value>60030</value>
    </property>
   
    <property>
      <name>hbase.regionserver.wal.codec</name>
      <value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value>
    </property>
   
    <property>
      <name>hbase.rootdir</name>
      <value>hdfs://hdp01.hadoop:8020/hbase</value>
    </property>
   
    <property>
      <name>hbase.rpc.protection</name>
      <value>authentication</value>
    </property>
   
    <property>
      <name>hbase.rpc.timeout</name>
      <value>90000</value>
    </property>
   
    <property>
      <name>hbase.security.authentication</name>
      <value>simple</value>
    </property>
   
    <property>
      <name>hbase.security.authorization</name>
      <value>false</value>
    </property>
   
    <property>
      <name>hbase.superuser</name>
      <value>hbase</value>
    </property>
   
    <property>
      <name>hbase.tmp.dir</name>
      <value>/hadoop/hbase</value>
    </property>
   
    <property>
      <name>hbase.zookeeper.property.clientPort</name>
      <value>2181</value>
    </property>
   
    <property>
      <name>hbase.zookeeper.quorum</name>
      <value>hdp03.hadoop,hdp01.hadoop,hdp02.hadoop</value>
    </property>
   
    <property>
      <name>hbase.zookeeper.useMulti</name>
      <value>true</value>
    </property>
   
    <property>
      <name>hfile.block.cache.size</name>
      <value>0.40</value>
    </property>
   
    <property>
      <name>phoenix.functions.allowUserDefinedFunctions</name>
      <value>true</value>
    </property>
   
    <property>
      <name>phoenix.query.timeoutMs</name>
      <value>60000</value>
    </property>
   
    <property>
      <name>zookeeper.session.timeout</name>
      <value>90000</value>
    </property>
   
    <property>
      <name>zookeeper.znode.parent</name>
      <value>/hbase</value>
    </property>
回复

使用道具 举报

Alkaloid0515 发表于 2016-1-23 10:22:36
HawCHing 发表于 2016-1-23 09:57
这个配置是在hbase-site.xml里配置的吗?我大概只找到
   
      hbase.regionserver.wal.codec

文件有问题,可以把其它客户端复制过来验证下
权限是有可能的,特别是复制过来的,自然也可以对比下。

回复

使用道具 举报

bob007 发表于 2016-1-24 18:39:25
HawCHing 发表于 2016-1-23 09:58
贴一下regionserver的hbase-site.xml
---------------------------------------------------------------- ...

<property>
      <name>hbase.region.server.rpc.scheduler.factory.class</name>
      <value></value>
    </property>

<property>
      <name>hbase.coprocessor.master.classes</name>
      <value></value>
    </property>
上面楼主没有参数值,为何还写上


<property>
      <name>hbase.rpc.protection</name>
      <value>authentication</value>
    </property>
上面一般为privacy



    <property>
      <name>hbase.security.authorization</name>
      <value>false</value>
    </property>
这里楼主没有启用安全机制吧


回复

使用道具 举报

w517424787 发表于 2018-6-22 14:48:47
记录下
我们的集群刚也遇到同样的问题,原因是我们的hbase中的表有些是用phoenix创建的,需要phoenix的jar去解析,所以只要把以前节点上的phoenix的jar包上传到hbase的lib目录下就可以重启hbase regionserver了!
参考网址:https://blog.csdn.net/xjping0794/article/details/76213020
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条