Как я могу перечислить активные задания DISTCP?

Как я могу перечислить активные задания DISTCP?

Я выполняю задание distcp между двумя кластерами.hadoop distcp hdfs://x/y /x/y

Я хочу запустить это постоянно, но нужно убедиться, что существующие distcp задачи выполнены.

Я пробовал следующее на исходном и целевом кластерах, но не вижу операции копирования. mapred job -list all

1 ответ

Решение

Это, в основном, вариант приложения Yarn api от elapsedTime. В вашем случае вы можете использовать API-интерфейс RM Cluster Applications, чтобы получить все приложения (к сожалению, он не фильтруется по name), затем отфильтруйте приложения, имена которых равны distcp, Ниже показано, как фильтровать с помощью jq:

$ curl 'RMURL/ws/v1/cluster/apps' | jq '.apps.app[] | select (.name == "distcp")'

Для вашего случая, если вы заинтересованы только в активных рабочих местах, вы бы добавили states фильтр к вызову API.

$ curl 'RMURL/ws/v1/cluster/apps?states=NEW,NEW_SAVING,SUBMITTED,ACCEPTED,RUNNING' |\
    jq '.apps.app[] | select (.name == "distcp")'

http://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-site/ResourceManagerRest.html

Другие вопросы по тегам