Как можно программно получить всю информацию о трекерах и задачах, которая отображается Hadoop в веб-интерфейсе? - PullRequest
2 голосов
/ 08 июля 2011

Я использую дистрибутив Hadoop от Cloudera CDH-0.20.2CDH3u0. Можно ли каким-либо образом получить такую ​​информацию, как статус JobTracker, статус TaskTracker, счетчики, использующие программу JAVA, работающую вне платформы hadoop? Я пытался слушать, используя JMX, но hadoop предоставляет очень мало информации о Jobtracker, tasktracker и датоде. Он не предоставляет никаких атрибутов JMX, связанных с состоянием выполнения задания, таких как процент выполнения карты, процент выполнения завершения, процент выполнения задачи, процент выполнения попытки, состояние счетчиков и т. Д.

Кроме того, я попытался использовать журналы метрик, сброшенные hadoop. Но он также не содержит никакой информации относительно карты / процента выполнения, процента выполнения задачи.

Я думаю, должен быть какой-то альтернативный способ получить все эти вещи.

Пожалуйста, ответьте.

Ответы [ 2 ]

8 голосов
/ 10 декабря 2011

Вы можете использовать Hadoop API для программного доступа к этой информации.В частности, создайте экземпляр JobClient с подходящей конфигурацией для вашего кластера, а затем вы можете использовать getJob для этого экземпляра, чтобы получить RunningJob.При этом вы сможете получить детали, которые вы ищете (следующий код полностью не проверен, но я надеюсь, что в направлении правильной идеи):

JobClient theJobClient = new JobClient(new InetSocketAddress("your.job.tracker", 8021), new Configuration());
RunningJob theJob = theJobClient.getJob("job_id_string"); // caution, deprecated
float mapProgress = theJob.mapProgress(); // similar for reduceProgress
// etc (see RunningJob)

Вы также можете получитьсписок текущих выполняемых заданий с theJobClient.jobsToComplete, который возвращает массив JobStatus, который должен предоставлять аналогичные значения (mapProgress и т. д.) и может предоставить экземпляр JobID, который вы могли бы использовать для получения RunningJobвыше (если вы хотите избежать устаревшего метода).

Конечно, есть и другие варианты.Начните с http://hadoop.apache.org/common/docs/r0.20.2/api/org/apache/hadoop/mapred/JobClient.html для получения более подробной информации.

3 голосов
/ 10 июля 2011

Я не уверен, что это правильно, но вы можете попробовать HUE.Я думаю, что HUE дает информацию о рабочих местах.С его открытым исходным кодом вы можете увидеть, как они получают доступ к трекеру работы и имени трекера.

...