hbase主机无法启动异常java.lang.nosuchmethodexception

91zkwejq  于 2021-06-04  发布在  Hadoop
关注(0)|答案(2)|浏览(462)

我跟随拉尔斯·乔治·赫巴斯的权威指南。我正在山狮macbookpro上建立一个伪分布式集群,我下载了hadooparchive0.20.205.0,没有删减,做了一些小改动

dfs.replication=1

和其他人。当我在hbase-site.xml中进行更改以将localhost hdfs namenode指定为

hbase.rootdir=hdfs://localhost:9000/hbase

还有其他一些属性,比如

zookeeperquorum, zookeeperdataDir, isDistributed=true

等等。
但是,在运行时

bin/start-hbase.sh

我无法在60010访问webui。跑步时,我注意到hbase的主人死得很快。所以我访问了主日志,发现抛出了这个异常

2629 2013-06-23 14:22:43,694 WARN org.apache.hadoop.hbase.util.FSUtils: Unable to create version file at hdfs://localhost:9000/hbase, retrying: java.io.IOException: java.lang.NoSuchMethodException: org.apache.hadoop.hdfs.protocol.Client     Protocol.create(java.lang.String, org.apache.hadoop.fs.permission.FsPermission, java.lang.String, boolean, boolean, short, long)
2630     at java.lang.Class.getMethod(Class.java:1607)
2631     at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:557)
2632     at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1388)
2633     at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1384)
2634     at java.security.AccessController.doPrivileged(Native Method)
2635     at javax.security.auth.Subject.doAs(Subject.java:396)
2636     at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1059)
2637     at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1382)

我不想重复大家发帖的时候都会发这样的问题,我是一个新手请帮忙:)但我真的是一个新手做了我必须做的事,找不到答案,任何指点都会非常感激。

xcitsw88

xcitsw881#

虽然,我的问题解决了,将jar hadoop-core-0.20.205复制到hbase的lib目录中,但是如果有hbase方面的经验的人能对这个做些评论就太好了。我想听一个有经验的回答

1dkrff03

1dkrff032#

当您在伪(或完全)分布式模式下使用hbase时,它对hadoop库有一些依赖关系(比如rpc版本可能会因为协议的更改而更改)。这就是为什么在hase/lib文件夹中需要合适的hadoopjar。
由于这些依赖关系,每个版本的hbase都会在lib目录下捆绑一个hadoopjar示例。可能捆绑的hadoop是在hbase发布时从某个分支生成的,这与您目前使用的不同。 For example, 您使用的是hbase-0.94.7,它是hadoop-0.20.205的最新版本。这就是为什么,集群上的hadoop版本必须与hbase版本相匹配。
另外,为了避免这些问题,我建议您同时使用hadoop和hbase的最新稳定版本。0.20.205现在已经很古老了。
希望这能回答你的问题。

相关问题