Как я могу перечислить активные задания 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