* error log {{{ #!text org.apache.jasper.JasperException: Unable to compile class for JSP: An error occurred at line: 128 in the jsp file: /dfshealth.jsp The method getFSImage() from the type FSNamesystem is not visible 125: HttpServletRequest request) 126: throws IOException { 127: long underReplicatedBlocks = fsn.getUnderReplicatedBlocks(); 128: FSImage fsImage = fsn.getFSImage(); 129: 130: 131: List removedStorageDirs = fsImage.getRemovedStorageDirs(); An error occurred at line: 131 in the jsp file: /dfshealth.jsp The method getRemovedStorageDirs() from the type FSImage is not visible 128: FSImage fsImage = fsn.getFSImage(); 129: 130: 131: List removedStorageDirs = fsImage.getRemovedStorageDirs(); 132: String storageDirsSizeStr="", removedStorageDirsSizeStr="", storageDirsStr="", removedStorageDirsStr="", storageDirsDiv="", removedStorageDirsDiv=""; 133: 134: //FS Image storage configuration Stacktrace: org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:97) org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330) org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:457) org.apache.jasper.compiler.Compiler.compile(Compiler.java:378) org.apache.jasper.compiler.Compiler.compile(Compiler.java:353) org.apache.jasper.compiler.Compiler.compile(Compiler.java:340) org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:644) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:358) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) }}} * 解決 dfshealth.jsp 的 bug * vim /opt/hadoop-0.20/src/hdfs/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java {{{ #!java public FSImage getFSImage() { return dir.fsImage; } }}} * /opt/hadoop-0.20/src/hdfs/org/apache/hadoop/hdfs/server/namenode/FSImage.java {{{ #!java ..(208) public List getRemovedStorageDirs() { return this.removedStorageDirs; } }}} * 解決 dfsnodelist.jsp 的錯誤訊息 {{{ #!text long decommRequestTime = d.decommissioningStatus.getStartTime(); + d.decommissioningStatus.getUnderReplicatedBlocks() + d.decommissioningStatus.getDecommissionOnlyReplicas() + d.decommissioningStatus.getUnderReplicatedInOpenFiles() }}} * /opt/hadoop-0.20/src/hdfs/org/apache/hadoop/hdfs/server/namenode/DatanodeDescriptor.java 幫 * getStartTime(); * getUnderReplicatedBlocks() * getDecommissionOnlyReplicas() * getUnderReplicatedInOpenFiles() 各家上public {{{ #!java ...(472) public static class DecommissioningStatus { ...(487) synchronized public int getUnderReplicatedBlocks() { if (isDecommissionInProgress() == false) { return 0; } return underReplicatedBlocks; } synchronized public int getDecommissionOnlyReplicas() { if (isDecommissionInProgress() == false) { return 0; } return decommissionOnlyReplicas; } synchronized public int getUnderReplicatedInOpenFiles() { if (isDecommissionInProgress() == false) { return 0; } return underReplicatedInOpenFiles; } synchronized public long getStartTime() { if (isDecommissionInProgress() == false) { return 0; } }}}