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 常用参数

  • hadoop streaming 参数
参数 说明
-input 输入数据路径
-output 输出数据路径
-mapper mapper可执行程序或Java类
-reducer reducer可执行程序或Java类
-file Optional 分发本地文件
-cacheFile Optional 分发HDFS文件
-cacheArchive Optional 分发HDFS压缩文件
-numReduceTasks Optional reduce任务个数
-jobconf -D NAME=VALUE Optional 作业配置参数
-combiner Optional Combiner Java类
-partitioner Optional Partitioner Java类
-inputformat Optional InputFormat Java类
-outputformat Optional OutputFormat Java类
-inputreader Optional InputReader配置
-cmdenv = Optional 传给mapper和reducer的环境变量
-mapdebug Optional mapper失败时运行的debug程序
-reducedebug 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、参考资料

  • https://hadoop.apache.org/docs/r2.6.0/hadoop-mapreduce-client/hadoop-mapreduce-client-core/HadoopStreaming.html