【发布时间】:2015-10-26 08:14:38
【问题描述】:
我使用hadoop2.7.1 的rest api 在集群外运行mapreduce 作业。这个例子“http://hadoop-forum.org/forum/general-hadoop-discussion/miscellaneous/2136-how-can-i-run-mapreduce-job-by-rest-api”真的帮助了我。但是当我提交一个帖子回复时,发生了一些奇怪的事情:
我查看“http://master:8088/cluster/apps”,一个帖子回复产生了两个工作,如下图所示: strange things: a response produces two jobs
等待很长时间后,我在 http 响应正文中定义的作业因 FileAlreadyExistsException 而失败。原因是另一个作业创建了输出目录,所以输出目录 hdfs://master:9000/output/output16 已经存在。
这是我的回复正文:
{
"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
有人可以帮助我吗?非常感谢。
【问题讨论】:
标签: rest hadoop mapreduce hadoop-yarn