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