wiki:waue/2011/0803

Version 3 (modified by waue, 13 years ago) (diff)

--

  • error log
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<Storage.StorageDirectory> 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<Storage.StorageDirectory> 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
  public FSImage getFSImage() {
    return dir.fsImage;
  }

  • /opt/hadoop-0.20/src/hdfs/org/apache/hadoop/hdfs/server/namenode/FSImage.java
..(208)
  public List<StorageDirectory> getRemovedStorageDirs() {
          return this.removedStorageDirs;
  }
  • 解決 dfsnodelist.jsp 的錯誤訊息
    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

...(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;
      }