HTTP 500:
Caused by:
java.io.IOException: Can’t browse the DFS since there are no live nodes available to redirect to.
at org.apache.hadoop.hdfs.server.namenode.NamenodeJspHelper.redirectToRandomDataNode(NamenodeJspHelper.java:646)
at org.apache.hadoop.hdfs.server.namenode.nn_005fbrowsedfscontent_jsp._jspService(nn_005fbrowsedfscontent_jsp.java:70)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
at org.mortbay.jetty.servlet.ServletHandlerCachedChain.doFilter(ServletHandler.java:1221)atorg.apache.hadoop.http.lib.StaticUserWebFilterCachedChain.doFilter(ServletHandler.java:1221)atorg.apache.hadoop.http.lib.StaticUserWebFilterStaticUserFilter.doFilter(StaticUserWebFilter.java:109)
at org.mortbay.jetty.servlet.ServletHandlerCachedChain.doFilter(ServletHandler.java:1212)atorg.apache.hadoop.http.HttpServerCachedChain.doFilter(ServletHandler.java:1212)atorg.apache.hadoop.http.HttpServerQuotingInputFilter.doFilter(HttpServer.java:1081)
at org.mortbay.jetty.servlet.ServletHandlerCachedChain.doFilter(ServletHandler.java:1212)atorg.apache.hadoop.http.NoCacheFilter.doFilter(NoCacheFilter.java:45)atorg.mortbay.jetty.servlet.ServletHandlerCachedChain.doFilter(ServletHandler.java:1212)atorg.apache.hadoop.http.NoCacheFilter.doFilter(NoCacheFilter.java:45)atorg.mortbay.jetty.servlet.ServletHandlerCachedChain.doFilter(ServletHandler.java:121
- at org.apache.hadoop.http.NoCacheFilter.doFilter(NoCacheFilter.java:45)
at org.mortbay.jetty.servlet.ServletHandlerCachedChain.doFilter(ServletHandler.java:1212)atorg.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:399)atorg.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)atorg.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)atorg.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)atorg.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450)atorg.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)atorg.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)atorg.mortbay.jetty.Server.handle(Server.java:326)atorg.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)atorg.mortbay.jetty.HttpConnectionCachedChain.doFilter(ServletHandler.java:1212)atorg.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:399)atorg.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)atorg.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)atorg.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)atorg.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450)atorg.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)atorg.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)atorg.mortbay.jetty.Server.handle(Server.java:326)atorg.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)atorg.mortbay.jetty.HttpConnectionRequestHandler.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)
Powered by Jetty://
导致这种错误的原因是使用2.2.0版本就废弃的hadoop -namenode -format进行hdfs初始化,应该使用hdfs namenode
-format进行。
解决办法为先停止所有hadoop相关进程,然后使用hdfs namenode -format格式化再重启服务。
重启后发现datanode没有启动,仍然无法访问filesystem,解决办法是:在dfs/name目录下找到一个current/VERSION文件,记录clusterID并复制。然后dfs/data目录下找到一个current/VERSION文件,将其中clustreID的值替换成刚刚复制的clusterID的值即可;