On this page
MapReduce 流作业-POST mapreduce /流
Description
创建并排队Hadoop 流式 MapReduce作业。
Version: Hive 0.13.0 and later
从 Hive 0.13.0 开始,GET version/hadoop显示用于 MapReduce 作业的 Hadoop 版本。
URL
http://
* www.myserver.com * /templeton/v1/mapreduce/streaming
Parameters
Name | Description | Required? | Default | ||
---|---|---|---|---|---|
input | Importing 数据在 Hadoop 中的位置。 | Required | None | ||
output | 存储输出数据的位置。如果未指定,WebHCat 会将输出存储在可以使用queue资源发现的位置。 | Optional | See description | ||
mapper | Map 程序在 Hadoop 中的位置。 | Required | None | ||
reducer | reducer 程序在 Hadoop 中的位置。 | Required | None | ||
file | 将 HDFS 文件添加到分布式缓存。 | Optional | None | ||
define | 使用语法define=NAME=VALUE 设置 Hadoop 配置变量 |
Optional | None | ||
cmdenv | 使用语法cmdenv=NAME=VALUE 设置环境变量 |
Optional | None | ||
arg | 设置程序参数。 | Optional | None | ||
statusdir | WebHCat 将在其中写入 Map Reduce 作业状态的目录。如果提供了此目录,则调用者有责任在完成后删除此目录。 | Optional | None | ||
enablelog | 如果设置 statusdir 且 enablelog 为“ true”,请收集 Hadoop 作业配置并在作业完成后登录名为$statusdir/logs 的目录。完成和失败的尝试都将被记录。 $statusdir/logs 中子目录的布局为: |
||||
logs/$job_id ($ job_id 的目录)logs/$job_id/job.xml.html logs/$job_id/$attempt_id ($ attempt_id 的目录)logs/$job_id/$attempt_id/stderr logs/$job_id/$attempt_id/stdout logs/$job_id/$attempt_id/syslog 此参数是在 Hive 0.12.0 中引入的。 (请参见HIVE-4531。) |
Hive 0.12.0 中的可选 | 无 | |||
callback | 定义在作业完成时要调用的 URL。您可以使用$jobId 将特定的工作 ID 嵌入此 URL。 |
可选 | 无 | 将在回调 URL 中用此作业的作业 ID 替换该标签。 |
standard parameters也受支持。
Results
Name | Description |
---|---|
id | 包含类似于“ job_201110132141_0001”的作业 ID 的字符串。 |
info | 一个 JSON 对象,其中包含作业排队时返回的信息。有关更多信息,请参见 Hadoop 文档(Class TaskController)。 |
Example
代码和数据设置
% cat mydata/file01 mydata/file02
Hello World Bye World
Hello Hadoop Goodbye Hadoop
% hadoop fs -put mydata/ .
% hadoop fs -ls mydata
Found 2 items
-rw-r--r-- 1 ctdean supergroup 23 2011-11-11 13:29 /user/ctdean/mydata/file01
-rw-r--r-- 1 ctdean supergroup 28 2011-11-11 13:29 /user/ctdean/mydata/file02
Curl Command
% curl -s -d input=mydata \
-d output=mycounts \
-d mapper=/bin/cat \
-d reducer="/usr/bin/wc -w" \
'http://localhost:50111/templeton/v1/mapreduce/streaming?user.name=ekoifman'
Version information
在 Hive 0.13.0 之前,在 POST 请求中将 user.name 指定为表单参数curl -d user.name=<user>
。
从Hive 0.13.0开始,应在查询字符串中指定 user.name(如上所示):'http://.../templeton/v1/mapreduce/streaming?user.name=<name>'
。不建议将 user.name 指定为表单参数。
JSON Output
{
"id": "job_201111111311_0008",
"info": {
"stdout": "packageJobJar: [] [/Users/ctdean/var/hadoop/hadoop-0.20.205.0/share/hadoop/contrib/streaming/hadoop-streaming-0.20.205.0.jar...
templeton-job-id:job_201111111311_0008
",
"stderr": "11/11/11 13:26:43 WARN mapred.JobClient: Use GenericOptionsParser for parsing the arguments
11/11/11 13:26:43 INFO mapred.FileInputFormat: Total input paths to process : 2
",
"exitcode": 0
}
}
Example Results
% hadoop fs -ls mycounts
Found 3 items
-rw-r--r-- 1 ctdean supergroup 0 2011-11-11 13:27 /user/ctdean/mycounts/_SUCCESS
drwxr-xr-x - ctdean supergroup 0 2011-11-11 13:26 /user/ctdean/mycounts/_logs
-rw-r--r-- 1 ctdean supergroup 10 2011-11-11 13:27 /user/ctdean/mycounts/part-00000
% hadoop fs -cat mycounts/part-00000
8
Navigation Links
Previous: PUT ddl/database/:db/table/:table/property/:property
Next: POST mapreduce/jar
常规:WebHCat Reference – WebHCat Manual – HCatalog Manual – Hive Wiki 主页 – Hive 项目 site