首先说一下谷歌的搜索引擎,主要做两件事情:
第一、通过网络爬虫去各个网页上爬取数据,爬取完数据后需要找个位置存储。
第二、通过索引服务器对爬取的数据进行分析,然后生成索引。通过索引就可以对各个网页进行检索查询
但是搜索引擎是商业版的,这时一个程序员Doung cutting觉得搜索引擎就是分析各个网页的数据,分析完后生成索引文件,而索引文件就是通过各个关键字去检索网页的。这时Doung cutting就写了一个简单的jar包名为Lucene(生成索引+检索)
但是Doung cutting对Lucene并不是很满意,于是就又写了一个开源软件Nutch:它具备网络爬虫+索引服务器(对Lucene进行了封装)
由Nutch引发的问题?
1)、通过Nutch去各个网站爬取数据,但是当爬取的网页数据量过大时,该如何存储?所以引入分布式存储,将海量网页数据分散存储到不同的计算机中。
2)、通过索引服务器去各个计算机中取网页数据,取完数据后需要进行计算,但是这些网页数据较多,一台计算机服务肯定计算不过来,于是引入了分布式计算。
Hadoop的诞生
但是上面的两个问题都无法解决,直到
2002年谷歌发布了一篇开源的GFS论文,Doung cutting根据该论文思想写了HDFS模块
2004年谷歌发布了一篇开源的MapReduce论文,Doung cutting又根据该论文思想写了MapReduce模块
Nutch0.9版本以后,Doung Cutting将HDFS和MapReduce模块拆分出来,形成了一个大数据处理框架Hadoop