Hbase 常见错误总结——摘自忘了

一、执行$ hbase hbck 命令时,出现以下提示:

Invalid maximum heap size: -Xmx4096m

The specified size exceeds the maximum representable size.

Error: Could not create the Java Virtual Machine.

Error: A fatal exception has occurred. Program will exit.

原因:jvm设置的内存过大,减小配置文件hbase-env.sh内的设置即可。例如:

export HBASE_HEAPSIZE=1024

二、无法启动hbase,regionserver log里会有这样的错误,zookeeper也有初始化问题的错误

FATAL
org.apache.hadoop.hbase.regionserver.HRegionServer: ABORTING region
server 10.210.70.57,60020,1340088145399: Initialization of RS failed.
Hence aborting RS.

因为之前安装配置的时候是好好的,中间经历过强行kill
daemon的过程,又是报错初始化问题,所以估计是有缓存影响了,所以清理了tmp里的数据,然后发现HRegionServer依然无法启动,不过还好的是zookeeper启动了,一怒之下把hdfs里的hbase数据也都清理了,同时再清理tmp,检查各个节点是否有残留hbase进程,kill掉,重启hbase,然后这个世界都正常了。不知道具体哪里影响了,不推荐这种暴力解决办法,如果有谁知道原因请告之。

三、无法启动reginserver daemon,报错如下:

Exception in thread "main"
java.lang.RuntimeException: Failed construction of Regionserver: class
org.apache.hadoop.hbase.regionserver.HRegionServer

...

Caused by: java.net.BindException: Problem binding to /10.210.70.57:60020 : Cannot assign requested address

根据错误提示,检查ip对应的机器是否正确,如果出错机器的ip正确,检查60020端口是否被占用。

四、执行hbase程序orshell命令出现如下提示:

SLF4J: Class path contains multiple SLF4J bindings.

SLF4J: Found binding in [jar:file:/usr/hbase-0.92.1/lib/slf4j-log4j12-1.5.8.jar!/org/slf4j/impl/StaticLoggerBinder.class]

SLF4J: Found binding in [jar:file:/usr/hadoop-1.0.3/lib/slf4j-log4j12-1.4.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]

SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.

是因为hbase和hadoop里都有这个jar包,选择其一移除即可。

五、执行hbase的mapreduce作业,有些节点无任何报错正常执行,有些节点总报类似Status : FAILED

java.lang.NullPointerException的错误,查看tasktracker的log日志有如下错误:

WARN
org.apache.zookeeper.ClientCnxn: Session 0x0 for server null, unexpected
error, closing socket connection and attempting reconnect

...

caused by java.net.ConnectException: Connection refused

官方对这个错误给了说明,

Errors like this... are either due to ZooKeeper being down, or unreachable due to network issues.

当初配置zookeeper时只说尽量配置奇数节点防止down掉一个节点无法选出leader,现在看这个问题貌似所以想执行任务的节点都必须配置zookeeper啊。

六、报告找不到方法异常,但是报告的函数并非自己定义的,也并没有调用这样的函数,类似信息如下:

java.lang.RuntimeException: java.lang.NoSuchMethodException: com.google.hadoop.examples.Simple$MyMapper.()

at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:45)

at org.apache.hadoop.mapred.MapRunner.configure(MapRunner.java:32)

at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:53)

at org.apache.hadoop.mapred.MapTask.run(MapTask.java:209)

at org.apache.hadoop.mapred.TaskTracker$Child.main(TaskTracker.java:1210)

Caused by: java.lang.NoSuchMethodException: com.google.hadoop.examples.Simple$MyMapper.()

at java.lang.Class.getConstructor0(Class.java:2705)

at java.lang.Class.getDeclaredConstructor(Class.java:1984)

at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:41)

... 4 more

网上找到解决方法如下:

This is actually the() function. The display on the web
page doesn‘t translate into html, but dumps plain text, sois treated as a
(nonexistant) tag by your browser. This function is created as a
default initializer for non-static classes. This is most likely caused
by having a non-static Mapper or Reducer class. Try adding the static
keyword to your class declaration, ie:

意思是缺少static关键字~添加上即可。如下:

public static class MyMapper extends MapReduceBase implements Mapper {...}

七、使用mapreduce程序写HFile操作hbase时,可能会有这样的错误:

java.lang.IllegalArgumentException: Can‘t read partitions file

...

Caused by: java.io.IOException: wrong key class:
org.apache.hadoop.io.*** is not class
org.apache.hadoop.hbase.io.ImmutableBytesWritable

这里需要注意的是无论是map还是reduce作为最终的输出结果,输出的key和value的类型应该是:<
ImmutableBytesWritable, KeyValue> 或者< ImmutableBytesWritable,
Put>。改成这样的类型就行了。

八、如果启动hbase集群出现regionserver无法启动,日志报告如下类似错误时,说明是集群的时间不同步,只需要同步即可解决。

FATAL
org.apache.hadoop.hbase.regionserver.HRegionServer: ABORTING region
server 10.210.78.22,60020,1344329095415: Unhandled exceptio

n:
org.apache.hadoop.hbase.ClockOutOfSyncException: Server
10.210.78.22,60020,1344329095415 has been rejected; Reported time is too
far out of sync with mast

er. Time difference of 90358ms > max allowed of 30000ms

org.apache.hadoop.hbase.ClockOutOfSyncException:
org.apache.hadoop.hbase.ClockOutOfSyncException: Server
10.210.78.22,60020,1344329095415 has been rejected;

Reported time is too far out of sync with master. Time difference of 90358ms > max allowed of 30000ms

......

Caused by: org.apache.hadoop.ipc.RemoteException: org.apache.hadoop.hbase.ClockOutOfSyncException: Server 10.210.78.22,60020,1344329095415 has been rejected;

Reported time is too far out of sync with master. Time difference of 90358ms > max allowed of 30000ms

只需要执行一下这条命令即可同步国际时间:

/usr/sbin/ntpdate tick.ucla.edu tock.gpsclock.com
ntp.nasa.gov timekeeper.isi.edu usno.pa-x.dec.com;/sbin/hwclock
--systohc > /dev/null

时间: 2024-08-04 17:26:10

Hbase 常见错误总结——摘自忘了的相关文章

GO 新开发者要注意的陷阱和常见错误

转自:http://colobu.com/2015/09/07/gotchas-and-common-mistakes-in-go-golang/ 初级 开大括号不能放在单独的一行 未使用的变量 未使用的Imports 简式的变量声明仅可以在函数内部使用 使用简式声明重复声明变量 偶然的变量隐藏Accidental Variable Shadowing 不使用显式类型,无法使用"nil"来初始化变量 使用"nil" Slices and Maps Map的容量 字符

.Net常见错误

常见错误 #1: 把引用当做值来用,或者反过来 C++ 和其他很多语言的程序员,习惯了给变量赋值的时候,要么赋单纯的值,要么是现有对象的引用.然而,在C# 中,是值还是引用,是由写这个对象的程序员决定的,而不是实例化对象并赋值的程序员决定的.这往往会坑到 C# 的新手程序员. 如果你不知道你正在使用的对象是否是值类型或引用类型,你可能会遇到一些惊喜.例如:   Point point1 = new Point(20, 30);   Point point2 = point1;   point2.

实时嵌入式软件开发的25个常见错误

英文原文由David B. Stewart撰写,  这篇论文对实时嵌入式软件开发的易犯错误做了深入分析,对我们的开发非常有指导意义. David B. Stewart Software Engineering for Real-Time Systems Laboratory Department of Electrical and Computer Engineering and Institute for Advanced Computer Studies University of Mary

GCC 常见错误解析

1GCC 常见错误解析一.错误类型第一类∶C 语法错误错误信息∶文件source.c 中第n 行有语法错误(syntex errror).这种类型的错误,一般都是 C 语言的语法错误,应该仔细检查源代码文件中第n 行及该行之前的程序,有时也需要对该文件所包含的头文件进行检查.有些情况下,一个很简单的语法错误,gcc 会给出一大堆错误,此时要保持清醒的头脑,不要被其吓倒,必要的时候再参考一下C 语言的基本教材.第二类∶头文件错误错误信息∶找不到头文件head.h(Can not find incl

Div+CSS常见错误总结

CSS+DIV是网站标准(或称"WEB标准")中常用的术语之一,通常为了说明与HTML网页设计语言中的表格(table)定位方式的区别,因为XHTML网站设计标准中,不再使用表格定位技术,而是采用css+div的方式实现各种定位.应用应用DIV+CSS编码时很容易犯一些错误.本文列举了一些常见的错误:  1. 检查HTML元素是否有拼写错误.是否忘记结束标记 即使是老手也经常会弄错div的嵌套关系.可以用dreamweaver的验证功能检查一下有无错误. 2. 检查CSS是否正确 检查

(转)Hadoop之常见错误集锦

Hadoop之常见错误集锦 下文中没有特殊说明,环境都是CentOS下Hadoop 2.2.0.1.伪分布模式下执行start-dfs.sh脚本启动HDFS时出现如下错误:                vi打开libexec/hadoop-config.sh中,查找JAVA_HOME is not set and could not be found,找到后在这一行if [[ -z $JAVA_HOME ]]; then的前面添加如下语句即可:        export JAVA_HOME=

【转载】实时嵌入式软件开发的25个常见错误

原文地址:http://blog.csdn.net/myaccella/article/details/7003308 英文原文由David B. Stewart撰写,  这篇论文对实时嵌入式软件开发的易犯错误做了深入分析,对我们的开发非常有指导意义. David B. Stewart Software Engineering for Real-Time Systems Laboratory Department of Electrical and Computer Engineering an

javascript学习笔记 常见错误和调试

常见错误一:未定义的变量 abc=23; var abc=23; 若没有var也可运行,隐式地创建了一个新的全局变量abc,严格定义变量应该使用var关键字. 常见错误二:区分大小写 var myName="Jim"; If (myName=="jim") alert(myName.toUppercase()); 以上代码中有三处错误:Jim和jim的首字母J不一样,关键字if写成了If,toUpperCase()方法中的字母C应该是大写的. 常见错误三:不匹配的大

css+div网页布局常见错误总汇

CSS+DIV是网站标准(或称“WEB标准”)中常用的术语之一,体感音波通常为了说明与HTML网页设计语言中的表格(table)定位方式的区别,因为XHTML网站设计标准中,不再使用表格定位技术,而是采用css div的方式实现各种定位.应用应用DIV+CSS编码时很轻易犯一些错误.本文列举了一些常见的错误: 1. 检查HTML元素标签是否有拼写错误.是否忘记结束标记 即使是老手也经常会弄错div的嵌套关系.可以用dreamweaver的验证功能检查一下有无错误. 2. 检查CSS是否正确 检查