很多人问阿里的飞天大数据平台、云梯2、MaxCompute、实时计算到底是什么,和自建Hadoop平台有什么区别。
先说Hadoop
什么是Hadoop?
Hadoop是一个开源、高可靠、可扩展的分布式大数据计算框架系统,主要用来解决海量数据的存储、分析、分布式资源调度等。Hadoop最大的优点就是能够提供并行计算,充分利用集群的威力进行高速运算和存储。
Hadoop的核心有两大板块:HDFS和MapReduce。
HDFS全称Hadoop Distributed File System,是一种分布式文件存储系统。分布式文件系统是指将固定于某个地点的某个文件系统,扩展到任意多个文件系统,众多的节点组成一个文件系统网络。每个节点可以分布在不同的地点,通过网络进行节点间的通信和数据传输。人们在使用分布式文件系统时,无需关心数据是存储在哪个节点上、或者是从哪个节点获取的,只需要像使用本地文件系统一样管理和存储文件系统中的数据。HDFS有着高容错性,可以部署在低廉的硬件;提供高吞吐量来访问应用程序的数据;可以有效解决超大数据量存储和管理难题的分布式文件系统属性的特点。因此HDFS天然适合有着超大数据集的应用程序,或者说本身就是为超大规模数据量处理的应用程序而设计的。
MapReduce是一个分布式离线并行计算框架,能够对大数据集进行并行处理。MapReduce就是将一个超大规模计算量的任务或者说数据量分割成无数小的计算任务与计算文件,然后再将计算结果进行合并的过程。MapReduce主要分为Map和Reduce两个阶段。Map是计算阶段,计算足够小的计算任务。Reduce是汇总阶段,将map阶段的计算结果汇总合并起来。
Hadoop的初始版本或者说核心就是这两大板块:HDFS为海量数据提供了存储,而MapReduce为海量数据提供了计算框架。
Hadoop的历史
1998年9月4日,Google公司在美国硅谷成立。
与此同时,一位名叫Doug Cutting的美国工程师,也迷上了搜索引擎。他做了一个用于文本搜索的函数库,命名为Lucene。Lucene是用JAVA写成的,因为好用而且开源,非常受程序员们的欢迎。
2001年底,Lucene成为Apache软件基金会jakarta项目的一个子项目。
2004年,Doug Cutting在Lucene的基础上和Apache开源伙伴Mike Cafarella合作开发了一款开源搜索引擎,命名为Nutch。Nutch是一个建立在Lucene核心之上的网页搜索应用程序,类似于Google。
随着时间的推移,互联网发展迅速,数据量暴增,搜索引擎需要检索的对象的数据量也在不断增大。尤其是Google,需要不断优化自己的搜索算法,提升搜索效率。在这个过程中Google提出了不少的新方法与思路。