hadoop streaming 语法

本文介绍了Hadoop Streaming的基本命令格式及常用参数,包括如何设置作业名称、任务数量、优先级等,并提供了输入输出路径、mapper与reducer程序的指定方法。此外还详细列举了分发文件、配置作业参数及其他高级选项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 <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> Optionalreduce任务个数
-jobconf -D NAME=VALUE Optional作业配置参数
-combiner <JavaClassName> OptionalCombiner Java类
-partitioner <JavaClassName> OptionalPartitioner Java类
-inputformat <JavaClassName> OptionalInputFormat Java类
-outputformat <JavaClassName> OptionalOutputFormat Java类
-inputreader <spec> OptionalInputReader配置
-cmdenv <n>=<v> Optional传给mapper和reducer的环境变量
-mapdebug <path> Optionalmapper失败时运行的debug程序
-reducedebug <path> Optionalreducer失败时运行的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.tasksmap任务个数
mapred.reduce.tasksreduce任务个数
mapred.job.groups作业可运行的计算节点分组
mapred.task.timeout任务没有响应(输入输出)的最大时间
mapred.compress.map.outputmap的输出是否压缩
mapred.map.output.compression.codecmap的输出压缩方式
mapred.output.compressreduce的输出是否压缩
mapred.output.compression.codecreduce的输出压缩方式
stream.map.output.field.separatormap输出分隔符

3、参考资料



本文转自 巴利奇 51CTO博客,原文链接:http://blog.51cto.com/balich/2065419
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值