1、hadoop streaming 命令格式
$HADOOP_HOME/bin/hadoop jar hadoop-streaming.jar \
-D mapred.job.name="streaming_wordcount" \
-D mapred.map.tasks=3 \
-D mapred.reduce.tasks=3 \
-D mapred.job.priority=3 \
-input /input/ \
-output /output/ \
-mapper python mapper.py \
-reducer python reducer.py \
-file ./mapper.py \
-file ./reducer.py
-
参数说明
- mapred.job.name:作业名称
- mapred.map.tasks:map任务数量
- mapred.reduce.tasks:reduce任务数量
- mapred.job.priority:作业优先级
- -input:在HDFS上的作业输入路径,支持通配符,支持多个文件
- -output:在HDFS上的作业结果输出路径
- -mapper:mapper可执行程序或Java类
- -reducer:reducer可执行程序或Java类
- -file:分发本地文件
- 注:在hadoop2.x版本中,hadoop-streaming.jar 程序存放在
$HADOOP_HOME/share/hadoop/tools/lib目录下;在hadoop1.x版本中,hadoop-streaming.jar程序存放在$HADOOP_HOME/contrib/streaming目录下
2、hadoop streaming 常用参数
| 参数 |
说明 |
| -input <path> |
输入数据路径 |
| -output <path> |
输出数据路径 |
| -mapper <cmd/JavaClassName> |
mapper可执行程序或Java类 |
| -reducer <cmd/JavaClassName> |
reducer可执行程序或Java类 |
| -file <file> Optional |
分发本地文件 |
| -cacheFile <file> Optional |
分发HDFS文件 |
| -cacheArchive <file> Optional |
分发HDFS压缩文件 |
| -numReduceTasks <num> Optional |
reduce任务个数 |
| -jobconf -D NAME=VALUE Optional |
作业配置参数 |
| -combiner <JavaClassName> Optional |
Combiner Java类 |
| -partitioner <JavaClassName> Optional |
Partitioner Java类 |
| -inputformat <JavaClassName> Optional |
InputFormat Java类 |
| -outputformat <JavaClassName> Optional |
OutputFormat Java类 |
| -inputreader <spec> Optional |
InputReader配置 |
| -cmdenv <n>=<v> Optional |
传给mapper和reducer的环境变量 |
| -mapdebug <path> Optional |
mapper失败时运行的debug程序 |
| -reducedebug <path> Optional |
reducer失败时运行的debug程序 |
| -verbose Optional |
详细输出模式 |
- -jobconf -D NAME=VALUE Optional作业参数说明
| 作业参数 |
作业参数说明 |
| mapred.job.name |
作业名 |
| mapred.job.priority |
作业优先级 |
| mapred.job.map.capacity |
最多同时运行map任务数 |
| mapred.job.reduce.capacity |
最多同时运行reduce任务数 |
| hadoop.job.ugi |
作业执行权限 |
| mapred.map.tasks |
map任务个数 |
| mapred.reduce.tasks |
reduce任务个数 |
| mapred.job.groups |
作业可运行的计算节点分组 |
| mapred.task.timeout |
任务没有响应(输入输出)的最大时间 |
| mapred.compress.map.output |
map的输出是否压缩 |
| mapred.map.output.compression.codec |
map的输出压缩方式 |
| mapred.output.compress |
reduce的输出是否压缩 |
| mapred.output.compression.codec |
reduce的输出压缩方式 |
| stream.map.output.field.separator |
map输出分隔符 |
3、参考资料
本文转自 巴利奇 51CTO博客,原文链接:http://blog.51cto.com/balich/2065419