Hadoop Streaming 实战: bash脚本
2011-05-05 11:59
309 查看
streaming支持使用脚本作为map、reduce程序。以下介绍一个实现分布式的计算所有文件的总行数的程序
1. 待检索的数据放入hdfs
$ hadoop fs -put localfile /user/hadoop/hadoopfile
2. 编写map、reduce脚本,记得给脚本加可执行权限。
mapper.sh
reducer.sh
3. 运行:
$ hadoop streaming –input /user/hadoop/hadoopfile -output /user/hadoop/result -mapper ./mapper.sh -reducer ./reducer.sh -file mapper.sh -file reducer.sh -jobconf mapred.reduce.tasks=1 -jobconf mapre.job.name="sum_test"
说明:
-input /user/hadoop/hadoopfile : 待处理文件目录
-output /user/hadoop/result :处理结果存放目录
-file :分发mapper.sh和reducer.sh到hdfs中
-jobconf mapred.reduce.tasks=1 : reduce任务数
3. 查看结果:
$ hadoop fs –cat /user/hadoop/result/part-00000
1. 待检索的数据放入hdfs
$ hadoop fs -put localfile /user/hadoop/hadoopfile
2. 编写map、reduce脚本,记得给脚本加可执行权限。
mapper.sh
#!/bin/sh wc –l
reducer.sh
#!/bin/sh sum=0 while read i do let sum+=$i done echo $sum
3. 运行:
$ hadoop streaming –input /user/hadoop/hadoopfile -output /user/hadoop/result -mapper ./mapper.sh -reducer ./reducer.sh -file mapper.sh -file reducer.sh -jobconf mapred.reduce.tasks=1 -jobconf mapre.job.name="sum_test"
说明:
-input /user/hadoop/hadoopfile : 待处理文件目录
-output /user/hadoop/result :处理结果存放目录
-file :分发mapper.sh和reducer.sh到hdfs中
-jobconf mapred.reduce.tasks=1 : reduce任务数
3. 查看结果:
$ hadoop fs –cat /user/hadoop/result/part-00000
相关文章推荐
- Hadoop Streaming 实战: bash脚本
- Hadoop 实战之Streaming(十一)
- Hadoop-Streaming实战经验及问题解决方法总结
- Hadoop Streaming shell 脚本命令汇总
- Hadoop 实战之Streaming(七)
- Hadoop 实战之Streaming(十二)
- hadoop streaming 脚本格式错误
- Hadoop 实战之Streaming(八)
- Hadoop Streaming 实战: 多路输出
- Hadoop 启 4000 动脚本分析与实战经验
- Hadoop脚本——Hadoop实战初级部分学习笔记
- Hadoop Streaming 实战: 多路输出
- Hadoop Streaming 实战: 多路输出
- Hadoop Streaming 实战: 输出文件分割
- Hadoop Streaming 实战: 传递环境变量
- Hadoop Streaming 实战: 输出文件分割
- Hadoop Streaming 实战: 多路输出
- bash实战篇-数组在工作中的实际应用(测试环境发布脚本) 推荐
- Hadoop Streaming 实战: grep
- Hadoop Streaming 实战: 文件分发与打包