<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> <%@ page import="org.apache.hadoop.fs.FileSystem" %> <%@ page import="org.apache.hadoop.conf.Configuration" %> <%@ page import="org.apache.nutch.util.NutchConfiguration" %> <%@ page import="org.apache.hadoop.dfs.DFSShell" %> <%@ page import="org.apache.nutch.admin.system.SystemUtil" %> <%@ page import="org.apache.hadoop.dfs.DatanodeInfo" %> <%@ page import="java.util.Date" %> <%@ page import="org.apache.hadoop.mapred.JobTracker" %> <%@ page import="java.util.Collection" %> <%@ page import="java.util.Iterator" %> <%@ page import="java.io.File" %> <%@ page import="java.util.Vector" %> <%@ page import="org.apache.hadoop.mapred.TaskTrackerStatus" %> <%@ page import="org.apache.nutch.admin.*" %> <%@ page import="org.apache.hadoop.mapred.LocalJobRunner" %> <%@ page import="java.text.DateFormat" %> <%@ page import="java.util.Locale" %> <% DateFormat dateInstance = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG, request.getLocale()); GuiComponent component = (GuiComponent) application.getAttribute("component"); Configuration configuration = component.getNutchInstance().getConfiguration(); FileSystem fileSystem = FileSystem.get(configuration); NutchInstance instance = component.getNutchInstance(); File instanceFolder = instance.getInstanceFolder(); String startTime = "-"; String trackerLabel ="-"; Collection taskTrackers = null; DatanodeInfo nodeInfos[] = new DatanodeInfo[0]; long totalUsed = 0; long totalCapacity = 0; SystemUtil fileSystemUtil = new SystemUtil(configuration, instanceFolder); nodeInfos = fileSystemUtil.getDataNodesInfos(); if(!"local".equals(fileSystem.getName())) { JobTracker jobTracker = JobTracker.getTracker(); startTime = dateInstance.format(new Date(jobTracker.getStartTime())); trackerLabel = jobTracker.getJobTrackerMachine() + ":" + jobTracker.getTrackerPort(); taskTrackers = jobTracker.taskTrackers(); }else { LocalJobRunner runner = LocalJobRunner.getInstance(configuration); trackerLabel = runner.getJobTrackerMachine(); taskTrackers = new Vector(); TaskTrackerStatus status = new TaskTrackerStatus("local_tracker", "local", 0, runner.runningJobs(), 0); status.setLastSeen(System.currentTimeMillis()); taskTrackers.add(status); startTime = dateInstance.format(new Date(runner.getStartTime())); } %> Nutch Administration
<%=component.getLabel("system.headline0", request.getLocale())%> (<%=component.getLabel("system.help", request.getLocale())%>)

<%=component.getLabel("system.headline1", request.getLocale())%>
<%=component.getLabel("system.ip", request.getLocale())%> <%=component.getLabel("system.up", request.getLocale())%>
<%=trackerLabel%> <%=startTime%>

<%=component.getLabel("system.headline2", request.getLocale())%>
<% for (Iterator it = taskTrackers.iterator(); it.hasNext(); ) { TaskTrackerStatus status = (TaskTrackerStatus) it.next(); long sinceHeartbeat = System.currentTimeMillis() - status.getLastSeen(); if (sinceHeartbeat > 0) { sinceHeartbeat = sinceHeartbeat / 1000; } int numCurTasks = 0; for (Iterator it2 = status.taskReports(); it2.hasNext(); ) { it2.next(); numCurTasks++; } %> <% } %>
<%=component.getLabel("system.name", request.getLocale())%> <%=component.getLabel("system.host", request.getLocale())%> <%=component.getLabel("system.jobs.running", request.getLocale())%> <%=component.getLabel("system.heartbeat", request.getLocale())%>
<%=status.getTrackerName()%> <%=status.getHost()%> <%=numCurTasks%> <%=sinceHeartbeat%>

<%=component.getLabel("system.headline0", request.getLocale())%>
<% for(int i=0; i <% } %>
<%=component.getLabel("system.name", request.getLocale())%> <%=component.getLabel("system.space.total", request.getLocale())%> <%=component.getLabel("system.space.used", request.getLocale())%> % <%=component.getLabel("system.space.used", request.getLocale())%> <%=component.getLabel("system.contact", request.getLocale())%>
<%=name%> <%=capacityString%> <%=used%>
<%=percent%> %
<%=dateInstance.format(new Date(nodeInfos[i].lastUpdate()))%>