下面结合具体的例子详述MapReduce的工作原理和过程。
以统计一个大文件中各个单词的出现次数为例来讲述,假设本文用到输入文件有以下两个:
文件1:
big data
offline data
online data
offline online data
文件2
hello data
hello online
hello offline
目标是统计这两个文件中各个单词的出现次数,很容易算出各个词出现的次数:
big:1
data:5
offline:3
online:3
hello:3
但是想象一下,如果是数以百万级的文献资料,每个文献资料数以十万字或百万字计,还能用肉眼算吗?而这正是Hadoop擅长的,对应Hadoop来说只需要定义简单的Map逻辑和Reduce逻辑,然后把输入文件和处理逻辑提交
给Hadoop即可,Hadoop将会自动完成所有的分布式计算任务。