복붙노트

[HADOOP] 나머지 API를 통해 MapReduce 작업 실행

HADOOP

나머지 API를 통해 MapReduce 작업 실행

나는 hadoop2.7.1의 나머지 api를 사용하여 클러스터 외부에서 mapreduce 작업을 실행합니다. 이 예제는 "http://hadoop-forum.org/forum/general-hadoop-discussion/miscellaneous/2136-how-can-i-run-mapreduce-job-by-rest-api"정말 도움이되었습니다. 그러나 게시물 응답을 제출하면 이상한 일이 발생합니다.

이것은 나의 응답 몸이다 :

{
    "application-id": "application_1445825741228_0011",
    "application-name": "wordcount-demo",
    "am-container-spec": {
        "commands": {
            "command": "{{HADOOP_HOME}}/bin/hadoop jar /home/hadoop/hadoop-2.7.1/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar wordcount /data/ /output/output16"
        },
        "environment": {
            "entry": [{
                "key": "CLASSPATH",
                "value": "{{CLASSPATH}}<CPS>./*<CPS>{{HADOOP_CONF_DIR}}<CPS>{{HADOOP_COMMON_HOME}}/share/hadoop/common/*<CPS>{{HADOOP_COMMON_HOME}}/share/hadoop/common/lib/*<CPS>{{HADOOP_HDFS_HOME}}/share/hadoop/hdfs/*<CPS>{{HADOOP_HDFS_HOME}}/share/hadoop/hdfs/lib/*<CPS>{{HADOOP_YARN_HOME}}/share/hadoop/yarn/*<CPS>{{HADOOP_YARN_HOME}}/share/hadoop/yarn/lib/*<CPS>./log4j.properties"
            }]
        }
    },
    "unmanaged-AM": false,
    "max-app-attempts": 2,
    "resource": {
        "memory": 1024,
        "vCores": 1
    },
    "application-type": "MAPREDUCE",
    "keep-containers-across-application-attempts": false
}

이것이 내 명령이다.

curl -i -X POST -H 'Accept: application/json' -H 'Content-Type: application/json' http://master:8088/ws/v1/cluster/apps?user.name=hadoop -d @post-json.txt

아무도 나를 도울 수 있습니까? 고마워.

해결법

  1. ==============================

    1.map reduce를 실행할 때 출력 폴더가 없으면 작업이 실행되지 않으므로 출력 폴더가없는 것을 확인하십시오. 당신은 폴더가 존재할 때 삭제할 수 있도록 프로그램을 작성하거나 나머지 API를 호출하기 전에 수동으로 삭제할 수 있습니다. 이는 데이터 손실을 막고 다른 작업의 출력을 덮어 쓰지 않도록하기위한 것입니다.

    map reduce를 실행할 때 출력 폴더가 없으면 작업이 실행되지 않으므로 출력 폴더가없는 것을 확인하십시오. 당신은 폴더가 존재할 때 삭제할 수 있도록 프로그램을 작성하거나 나머지 API를 호출하기 전에 수동으로 삭제할 수 있습니다. 이는 데이터 손실을 막고 다른 작업의 출력을 덮어 쓰지 않도록하기위한 것입니다.

  2. from https://stackoverflow.com/questions/33341185/run-a-mapreduce-job-via-rest-api by cc-by-sa and MIT license