Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Hadoop:获取特定MapReuce任务的计算机主机名_Java_Hadoop_Mapreduce - Fatal编程技术网

Java Hadoop:获取特定MapReuce任务的计算机主机名

Java Hadoop:获取特定MapReuce任务的计算机主机名,java,hadoop,mapreduce,Java,Hadoop,Mapreduce,对于任务的特定尝试,是否有任何方法可以通过编程方式获取机器主机名 hadoop的jobracker WebUI中会显示相同的信息,如下所示: 以下是迄今为止我所知道的实现这一目标的方法: // How to instantiate JobTracker ?? JobTracker tracker = (JobTracker) application.getAttribute("job.tracker"); JobID jobidObj = JobID.forName(

对于
任务的特定
尝试
,是否有任何方法可以通过编程方式获取
机器主机名

hadoop的
jobracker WebUI
中会显示相同的信息,如下所示:

以下是迄今为止我所知道的实现这一目标的方法:

    // How to instantiate JobTracker ??
    JobTracker tracker = (JobTracker) application.getAttribute("job.tracker");

    JobID jobidObj = JobID.forName(jobid);
    JobInProgress job = tracker.getJob(jobidObj);
    TaskID tipidObj = TaskID.forName(tipid);
    TaskInProgress tip = job.getTaskInProgress(tipidObj);
    TaskStatus[] ts = tip.getTaskStatuses();
    for (int i = 0; i < ts.length; i++) {
        TaskStatus status = ts[i];

        //get the attempt name
        String taskTrackerName = status.getTaskTracker();

        TaskTrackerStatus taskTracker = tracker.getTaskTracker(taskTrackerName);

        //get the hostname
        taskTracker.getHost();
    }
//如何实例化JobTracker??
JobTracker=(JobTracker)application.getAttribute(“job.tracker”);
JobID jobidbj=JobID.forName(JobID);
JobInProgress job=tracker.getJob(jobidObj);
TaskID tipidObj=TaskID.forName(tipid);
TaskInProgress tip=job.getTaskInProgress(tipidObj);
TaskStatus[]ts=tip.gettaskstatus();
对于(int i=0;i
这是我知道的获取主机名的唯一方法,但这些代码永远不会工作,因为我无法实例化
JobTracker
。如果上面的代码没有解决方案,请告诉我是否还有其他方法。

据我所知,它看起来不像是一个公共API,因为该信息已被写入MRv1。JIRA的解决方法是以编程方式请求JobTracker UI页面,并从中解析主机名

如果改用MRv2,则可以通过编程方式从中获取任务尝试的主机名