2014-07-10 102 views
1

我正在使用Hbase版本0.94.8和hadoop版本2.4.0。在僞分佈式模式下運行Hbase時,在檢查主狀態時出現以下錯誤:未運行僞分佈式的hbase

訪問/主控狀態時出現問題。原因:

org.apache.hadoop.net.NetUtils.getInputStream(Ljava/net/Socket;)Lorg/apache/hadoop/net/SocketInputWrapper; 

造成的:

java.lang.NoSuchMethodError: org.apache.hadoop.net.NetUtils.getInputStream(Ljava/net/Socket;)Lorg/apache/hadoop/net/SocketInputWrapper; 
    at org.apache.hadoop.hbase.ipc.HBaseClient$Connection.setupIOstreams(HBaseClient.java:437) 
    at org.apache.hadoop.hbase.ipc.HBaseClient.getConnection(HBaseClient.java:1124) 
    at org.apache.hadoop.hbase.ipc.HBaseClient.call(HBaseClient.java:974) 
    at org.apache.hadoop.hbase.ipc.WritableRpcEngine$Invoker.invoke(WritableRpcEngine.java:86) 
    at com.sun.proxy.$Proxy10.getProtocolVersion(Unknown Source) 
    at org.apache.hadoop.hbase.ipc.WritableRpcEngine.getProxy(WritableRpcEngine.java:138) 
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getMaster(HConnectionManager.java:712) 
    at org.apache.hadoop.hbase.client.HBaseAdmin.<init>(HBaseAdmin.java:126) 
    at org.apache.hadoop.hbase.master.MasterStatusServlet.doGet(MasterStatusServlet.java:56) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) 
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1221) 
    at org.apache.hadoop.http.HttpServer$QuotingInputFilter.doFilter(HttpServer.java:835) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212) 
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:399) 
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) 
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) 
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766) 
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450) 
    at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230) 
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 
    at org.mortbay.jetty.Server.handle(Server.java:326) 
    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) 
    at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928) 
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549) 
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) 
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) 
    at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410) 
    at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) 
+0

[請不要多次提問同一個問題。](http://stackoverflow.com/q/24653368/580412) – phs

+0

java.lang.NoSuchMethodError始終指向缺少的lib。所以Hbase缺少一個庫somwhere。 – Havnar

回答

0

這個問題來的時候你沒有的Hadoop罐子的正確版本。您可以登錄到您的環境並獲取hadoop版本。您應該擁有相同版本的jar文件,或者您可以從$ HADOOP_HOME/lib路徑中檢查jar文件。

它會給你所需的jar文件,你可以解決這個問題。

2

HBASE - 0.94.8和Hadoop - 2.4.0列由hbase.org爲NOT測試。錯誤原因可能是*版本兼容性問題*。因爲Hbase依賴於Hadoop罐子。

Hbase官方文檔站點提供了hadoop-hbase version compatability matrix。請參閱並選擇支持的Hadoop版本& Hbase。

相關問題