现在要完成一项海量数据处理的工作。大约有500G的.gz log文件现在要从log中提取一些信息做统计工作~因为文件太大,所以打算用hadoop来做。现在已经安装了hadoop,然后需要自己写mapreduce打算用脚本来写,比如shell,python。可是因为刚入手,所以对mapreduce不是很理解。不知哪位高手能用生动的语言解释一下什么事mapreduce,对于我这个问题来说,mapreduce有分别起到什么作用呢?
2 回答
潇潇雨雨
TA贡献1833条经验 获得超4个赞
比如说要查日志中不同单词出现的次数,把日志平均(注意这个评价不止是说大小,还有概率)分成两份(map),然后由两台机器分别去统计,A机器查到的结果是 {"hello": 3, "world": 5}, B机器查到的结果是 {"world": 4, "program": 2} 。两个一合并(reduce),就得到最终结果 {"hello": 3, “world": 9, "program": 2}
这样一个简单的例子你可以看到,一个map-reduce的过程,就是将一个任务平均划分(通常用上hash以保证平均)成多个互不依赖的子任务分别处理(map),然后再将子任务的结果合并(reduce)的过程。
并不是所有的任务都可以用map-reduce模型来完成的,但是Google通过对模型的简化,使得这样一套系统实际上也能完成相当多的实际任务。
- 2 回答
- 0 关注
- 775 浏览
添加回答
举报
0/150
提交
取消