Использование REST API MapReduce

Компоненты MapReduce предоставляют REST API для отправки запросов к Application Master и History Server.

Используя MapReduce REST API, можно получить информацию о запущенных и завершенных приложениях, заданиях и задачах. Эту информацию также можно найти в веб-интерфейсе YARN.

Для выполнения некоторых запросов может быть нужен специальный доступ. Вы можете настроить доступы для пользователей вашего кластера в настройках ACL.

REST API Application Master

Application Master принимает запросы, отправленные через прокси. В качестве прокси можно использовать Resource Manager или настроить отдельный хост.

URL запроса может быть в одном из следующих форматов (вывод от этого не изменится):

http://<адрес-прокси>:<порт>/proxy/<ID-приложения>/ws/v1/mapreduce

http://<адрес-прокси>:<порт>/proxy/<ID-приложения>/ws/v1/mapreduce/info

Здесь:

  • <адрес-прокси> — IP-адрес прокси-сервера;

  • <порт> — порт прокси-сервера;

  • <ID-приложения> — идентификатор приложения.

Пример запроса к Application Master:

$ curl -L http://127.0.0.1:8088/proxy/application_1713528166269_0001/ws/v1/mapreduce/info -H "Accept: application/xml"

Эта команда запрашивает информацию о запущенном приложении с идентификатором application_1713528166269_0001 в формате XML. Вы можете запросить ответ в формате JSON, передав в заголовке Accept: application/json.

Ответ Application Master:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><info><appId>application_1713528166269_0001</appId><name>QuasiMonteCarlo</name><user>yarn</user><startedOn>1713529723410</startedOn><elapsedTime>38797</elapsedTime></info>

Полная спецификация API доступна в статье MapReduce Application Master REST API’s.

REST API History Server

REST API History Server предоставляет информацию о завершившихся приложениях.

Пример команды, которая возвращает список заданий:

$ curl -X GET http://<адрес-history-server>:8042/ws/v1/history/mapreduce/jobs -H "Accept: application/json"

Здесь <адрес-history-server> — это IP-адрес или полное доменное имя хоста, на котором размещен History Server.

Эта команда запрашивает информацию о выполненных задачах (jobs) в формате JSON. Вы можете запросить ответ в формате XML, передав в заголовке Accept: application/xml.

Существуют дополнительные параметры, которые можно использовать для фильтрации вывода:

  • user — имя пользователя, запустившего приложение;

  • state — состояние задачи;

  • queue — имя очереди;

  • limit — количество объектов в выводе команды;

  • startedTimeBegin — задачи, которые начали выполняться после указанного времени (в миллисекундах);

  • startedTimeEnd — задачи, которые начали выполняться до указанного времени (в миллисекундах);

  • finishedTimeBegin — задачи, которые завершились после указанного времени (в миллисекундах);

  • finishedTimeEnd — задачи, которые завершились до указанного времени (в миллисекундах).

Пример команды, запрашивающей список задач, которые начались в промежутке времени между 1713770628450 и 1713770680980:

$ curl -X GET http://127.0.0.1:8088:19888/ws/v1/history/mapreduce/jobs?startedTimeBegin=1713770628450&startedTimeEnd=1713770680980 -H "Accept: application/json"

Ответ сервера:

{"jobs":{"job":[{"submitTime":1713770623388,"startTime":1713770628457,"finishTime":1713770680975,"id":"job_1713770455913_0001","name":"QuasiMonteCarlo","queue":"default","user":"yarn","state":"SUCCEEDED","mapsTotal":16,"mapsCompleted":16,"reducesTotal":1,"reducesCompleted":1},{"submitTime":1713771341013,"startTime":1713771345766,"finishTime":1713771398188,"id":"job_1713770455913_0002","name":"QuasiMonteCarlo","queue":"default","user":"yarn","state":"SUCCEEDED","mapsTotal":16,"mapsCompleted":16,"reducesTotal":1,"reducesCompleted":1}]}}

Полная спецификация API доступна в статье MapReduce History Server REST API’s.

Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней