天天看點

浏覽器通路 HDFS 頁面時,出現以下問題

浏覽器通路 hdfs 頁面時,出現以下問題

http error 500

problem accessing /nn_browsedfscontent.jsp. reason:

    can't browse the dfs since there are no live nodes available to redirect to.

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.servlethandler$cachedchain.dofilter(servlethandler.java:1221)

at org.apache.hadoop.http.lib.staticuserwebfilter$staticuserfilter.dofilter(staticuserwebfilter.java:109)

at org.mortbay.jetty.servlet.servlethandler$cachedchain.dofilter(servlethandler.java:1212)

at org.apache.hadoop.http.httpserver$quotinginputfilter.dofilter(httpserver.java:1081)

at org.apache.hadoop.http.nocachefilter.dofilter(nocachefilter.java:45)

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)

問題可能出現原因: 

datanode 服務未啟動成功

問題排查方案:

使用 jps 檢視發現沒有 datanode 程序

問題datanode 日志:

java.io.ioexception: incompatible clusterids in /home/hdfs/data: namenode clusterid = cid-4923bb76-3ceb-424d-a794-85e608f18307; datanode clusterid = cid-9487a0bb-c768-4673-a654-73dee9e1028e

at org.apache.hadoop.hdfs.server.datanode.datastorage.dotransition(datastorage.java:391)

at org.apache.hadoop.hdfs.server.datanode.datastorage.recovertransitionread(datastorage.java:191)

at org.apache.hadoop.hdfs.server.datanode.datastorage.recovertransitionread(datastorage.java:219)

at org.apache.hadoop.hdfs.server.datanode.datanode.initstorage(datanode.java:837)

at org.apache.hadoop.hdfs.server.datanode.datanode.initblockpool(datanode.java:808)

at org.apache.hadoop.hdfs.server.datanode.bpofferservice.verifyandsetnamespaceinfo(bpofferservice.java:280)

at org.apache.hadoop.hdfs.server.datanode.bpserviceactor.connecttonnandhandshake(bpserviceactor.java:222)

at org.apache.hadoop.hdfs.server.datanode.bpserviceactor.run(bpserviceactor.java:664)

at java.lang.thread.run(thread.java:745)

問題解決思路:

出現以上 error表示在 hdfs/data 目錄下得 namenode 得 clusterid 和 datanode 下的 id 不一緻造成的

問題解決方案:

1.删除 hadoop 臨時目錄下的所有檔案重新格式化 namenode (不推薦此操作,由于 hdfs 中可能存在有原來的資料,如果執行此操作,會删除所有資料)

2.将 hadoop 臨時目錄下的 data 和 name 目錄下的 current 檔案夾下的 version 中得 clusterid 修改為一緻即可

繼續閱讀