2017-08-02 4 views
0

Comment puis-je lister les tâches DISTCP actives? J'exécute un travail distcp entre deux clusters. Je veux exécuter ceci continuellement, mais je dois m'assurer que les tâches distcp existantes sont terminées.Comment puis-je répertorier les tâches DISTCP actives?

J'ai essayé ce qui suit sur les clusters source et de destination, mais je ne peux pas voir l'opération de copie. mapred job -list all

+0

Vous utilisez Fils ou Hadoop V1? – vgunnu

Répondre

0

Il s'agit essentiellement d'une variante de Yarn api get applications by elapsedTime. Dans votre cas, vous pouvez utiliser l'API RM Cluster Applications pour obtenir toutes les applications (malheureusement, il ne filtre pas sur name), puis filtrer les applications où le nom est égal à distcp. L'exemple suivant montre comment filtrer à l'aide JQ:

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

Pour votre cas, si vous n'êtes intéressé que par des emplois actifs, vous devez ajouter le filtre states à l'appel de l'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#Cluster_Applications_API