使用hadoop mapperreduce来统计大文件的行数-续1
2016-02-15 00:00
1696 查看
摘要: 使用hadoop mapperreduce来统计大文件的行数-续1
使用前面的脚本与直接使用 wc –l 来计算大文件的行数进行比较,具体结果如下:
可以看出,直接使用wc –l 进行统计的效率要比使用hadoop mapperreduce来统计高比较多,但因为使用hadoop mapperreduce统计时要把文件上传到hdfs上,而上传这个过程实际上会花费很长的时间,于是修改了代码去除了上传文件的过程(这两个文件在前面测试时已经上传到hdsf上了),具体脚本如下:
又重新对这两个文件进行了测试,具体结果如下:
可以看到随着文件的增大,使用hadoop mapperreduce方式进行统计的效率比直接使用wc –l的方式要高,但前提是这些文件已经上传到hdfs上了。
附测试环境的hadoop配置:
两台namenode,三台datanode
配置都为2个物理cpu,24核,内存为64g
使用前面的脚本与直接使用 wc –l 来计算大文件的行数进行比较,具体结果如下:
文件大小 | 文件行数 | Wc –l 时间(秒) | Mapperreduce 时间(秒) |
5.8g | 2497440 | 4 | 171 |
103g | 960000000 | 280 | 2172 |
#!/bin/bash file_name=$1 #删除结果目录 hadoop fs -rm -r /bigdata/output/test/ #统计行数 hadoop jar $HADOOP_HOME/contrib/streaming/hadoop-streaming-1.0.1.jar -files count.sh -input /bigdata/input/test/$file_name -output /bigdata/output/test/ -mapper 'wc -l' -reducer "sh count.sh"
又重新对这两个文件进行了测试,具体结果如下:
文件大小 | 文件行数 | Wc –l 时间(秒) | Mapperreduce 时间(秒) |
5.8g | 2497440 | 4 | 171 |
103g | 960000000 | 280 | 2172 |
附测试环境的hadoop配置:
两台namenode,三台datanode
配置都为2个物理cpu,24核,内存为64g
相关文章推荐
- 详解HDFS Short Circuit Local Reads
- Hadoop_2.1.0 MapReduce序列图
- 使用Hadoop搭建现代电信企业架构
- 单机版搭建Hadoop环境图文教程详解
- hadoop常见错误以及处理方法详解
- hadoop 单机安装配置教程
- hadoop的hdfs文件操作实现上传文件到hdfs
- hadoop实现grep示例分享
- Apache Hadoop版本详解
- linux下搭建hadoop环境步骤分享
- hadoop client与datanode的通信协议分析
- hadoop中一些常用的命令介绍
- Hadoop单机版和全分布式(集群)安装
- 用PHP和Shell写Hadoop的MapReduce程序
- hadoop map-reduce中的文件并发操作
- Hadoop1.2中配置伪分布式的实例
- java结合HADOOP集群文件上传下载
- 让python在hadoop上跑起来
- 用python + hadoop streaming 分布式编程(一) -- 原理介绍,样例程序与本地调试
- Hadoop安装感悟