You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-user@hadoop.apache.org by Bharati Adkar <bh...@mparallelo.com> on 2012/11/15 02:09:54 UTC

JSP page does not compile

Folks,
I am new to Hadoop. Just doing an exercise to understand the classes.
I have gone through all the jsp files from the webapps src folder and am
trying to understand the basic java Classes.
Here is the code

<%@ page
  contentType="text/html; charset=UTF-8"
      import="javax.servlet.*"
      import="javax.servlet.http.*"
      import="java.io.*"
      import="java.util.*"
      import="java.text.DecimalFormat"
      import="java.util.HashMap"
      import="java.util.Map"
      import="org.apache.hadoop.http.HtmlQuoting"
      import="org.apache.hadoop.mapred.*"
      import="org.apache.hadoop.mapreduce.*"
      import="org.apache.hadoop.util.*"
      import="javax.servlet.jsp.*"
      import="org.apache.hadoop.mapred.JobHistory.JobInfo"
      import="org.apache.hadoop.mapred.JobHistory.Keys"
    import="org.apache.hadoop.mapreduce.JobID"
    import="org.apache.hadoop.mapreduce.JobACL"
    import="org.apache.hadoop.security.AccessControlException"
    import="org.apache.hadoop.security.UserGroupInformation"
    import="org.apache.hadoop.security.authorize.AccessControlList"
    import="org.apache.hadoop.util.ServletUtil"
    import="org.apache.hadoop.util.StringUtils"
    import="java.text.SimpleDateFormat"
    import="org.apache.hadoop.mapred.JobStatus"
    import="org.apache.hadoop.mapred.TaskReport"
    import="org.apache.hadoop.mapreduce.JobID"

      import="java.lang.Integer"
%>
<%!    private static final long serialVersionUID = 1L;
%>
<%! static SimpleDateFormat dateFormat = new SimpleDateFormat("d-MMM-yyyy
HH:mm:ss") ;
%>
<%  DecimalFormat percentFormat = new DecimalFormat("##0.00");
  JobTracker tracker = (JobTracker) application.getAttribute("job.tracker");
  String trackerName =
StringUtils.simpleHostname(tracker.getJobTrackerMachine());
  JobConf conf = tracker.getConf();
  JobClient jobClient = new JobClient(conf);
  ClusterStatus status = tracker.getClusterStatus();
  ClusterMetrics metrics = tracker.getClusterMetrics();

  JobQueueInfo[] queues = tracker.getQueues();
  Vector<JobInProgress> runningJobs = tracker.runningJobs();
  Vector<JobInProgress> completedJobs = tracker.completedJobs();
  Vector<JobInProgress> failedJobs = tracker.failedJobs();
  String tasksPerNode = metrics.getTaskTrackerCount() > 0
?percentFormat.format(((double)(metrics.getMapSlotCapacity()
+metrics.getReduceSlotCapacity())) / metrics.getTaskTrackerCount()):"-";
  Collection c = tracker.activeTaskTrackers();
  ArrayList<JobID> jobidList = new ArrayList<JobID>();
  ArrayList completedMapsList = new ArrayList();
  ArrayList completedReducesList = new ArrayList();
  ArrayList desiredMapsMapsList = new ArrayList();
  ArrayList desiredReducesList = new ArrayList();
  //JobConf conf = tracker.conf;
  int rowId = runningJobs.size();

  for (Iterator<JobInProgress> it = completedJobs.iterator(); it.hasNext();
) {
      JobInProgress job = it.next();
      JobProfile profile = job.getProfile();
      //JobStatus status = job.getStatus();
      JobID jobid = job.getJobID();
      jobidList.add(jobid);
      int desiredMaps = job.desiredMaps();
      int desiredReduces = job.desiredReduces();
      int completedMaps = job.finishedMaps();
      int completedReduces = job.finishedReduces();
      completedMapsList.add(completedMaps);
      completedReducesList.add(completedReduces);
      desiredMapsMapsList.add(desiredMaps);
      desiredReducesList.add(desiredReduces);
  }

%>

<h2><%= trackerName %> Hadoop Map/Reduce Administration</h2>
<b>State:</b> <%= status.getJobTrackerState() %><br>
<b>Started:</b> <%= new Date(tracker.getStartTime())%><br>
<b>Map Slot Capacity:</b> <%= metrics.getMapSlotCapacity()%><br>
<b>Running Maps:</b> <%= metrics.getRunningMaps()%><br>
<b>Conf:</b> <%= conf %><br>
<b>JobClient:</b> <%= jobClient %><br>
<b>Completed Jobs Name:</b> <%= completedJobs %><br>
<%
     String jobName;
   for (int i =0;i<jobidList.size();i++){
       jobName = jobidList.get(i).toString();
       out.println("JobId = "+ jobName+"\n"+"<br/>");

        JobID jobidObj = JobID.forName(jobName);
           TaskReport[] reportsmap = null;
           try{
            reportsmap = tracker.getMapTaskReports(jobidObj) ;
           }
           catch(IOException e){
               out.println("Error = "+ e.getMessage()+"\n"+"<br/>");
           }

        if (reportsmap!=null){
        for (int j =0;j<reportsmap.length;j++){
            TaskReport report = reportsmap[j];
               out.println("Task Id = "+ report.getTaskID()+"\n"+"<br/>");
               out.println("Start Time = "+
StringUtils.getFormattedTimeWithDiff(dateFormat,
report.getStartTime(),0)+"\n"+"<br/>");
               out.println("End Time = "+
StringUtils.getFormattedTimeWithDiff(dateFormat,report.getFinishTime(),
report.getStartTime())+"\n"+"<br/>");
               out.println("State = "+ report.getState()+"\n"+"<br/>");
            }
        }
   }





%>


gives me error

Unable to compile class for JSP

An error occurred at line: 213 in the jsp file: /mparallelo.jsp
Generated servlet error:
The method getMapTaskReports(JobID) in the type JobTracker is not
applicable for the arguments (JobID)


Please can anyone point what am I doing wrong.

Thanks,
Bharati