目录
1、streaming运行流程
2、streaming任务提交与shell实现wordcount
3、常用参数支持
详情
1、streaming运行流程
Java标准版运行流程
streaming运行流程
在worker处存在差异,通过stdin/stdout将PipeMapper和StreamingMapper打通
2、streaming任务提交与shell实现wordcount步骤实现
- 数据准备
- map编写
- reduce编写
- driver不再需要写了…….
- yarn jar提交
- 结果查看
步骤详情
数据准备
- hdfs目录
- hdfs目录
shell map编写
shell reduce编写
shell运行
- 本地测试
- 本地测试
集群执行模板
- 数据准备
通用模板:yarn jar streaming_jar_path.jar [genericOptions] [streamingOptions]
细化模板 :yarn jar streaming_jar_path.jar \
-D configKey =configValue \ -input inputDirs \ -output outputDirs \ -mapper scriptMapper \ -reducer scriptReducer \ -file uploadFile
- 样例(shell实现wordcount案例)
yarn jar /usr/hdp/2.4.3.0-227/hadoop-mapreduce/hadoop-streaming.jar \
-Dmapred.output.compress=false \ -Dmapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec \ -Dmapred.reduce.tasks=1 \ -input /tmp/tianliangedu/input \ -output /tmp/tianliangedu/output73 \ -mapper "sh mapper_shell.sh" \ -reducer "sh reducer_shell.sh" \ -file mapper_shell.sh \ -file reducer_shell.sh
3、常用参数支持
- 通用系统参数传递
yarn jar /usr/hdp/2.4.3.0-227/hadoop-mapreduce/hadoop-streaming.jar \
-files mapper_shell.sh,reducer_shell.sh \ -Dmapred.output.compress=false \ -Dmapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec \ -Dmapred.reduce.tasks=1 \ -Dstream.map.output.field.separator=\001 \ -input /tmp/tianliangedu/input \ -output /tmp/tianliangedu/output76 \ -mapper "sh mapper_shell.sh" \ -reducer "sh reducer_shell.sh" \