hadoop原是Hadoop开发者的孩子给自己的大象玩具起的名字。因为原有的数据存储和处理工具对于处理互联网泡沫之后开始出现的海量数据显得力不从心, 所以开发了Hadoop。首先,谷歌提出了MapReduce构架,它能够应对来自整合全球信息任务所产生的数据流,并使这些数据变得具有很高的可访问性。此后,在2005年雅虎开发了基于MapReduce构架的Hadoop。它作为Apache许可协议下的一个开源工具于2007年被正式发布。
几年来,Hadoop已经变成了一个超大规模的操作系统,尤其是应用于时下产生的海量数据所进行的分布式并行处理。像通常的操作系统一样,Hadoop包括完整的文件系统,可编写程序,以及分布式管理这些程序并返回计算结果。
Hadoop 支持能同时运行在低廉硬件设备构建的大型集群上的数据密集型分布式应用程序。它是根据Apache v2的许可协议发布。Hadoop网络可靠稳定并且扩展度很高,它可以用来查询海量数据集。Hadoop是用Java所编写的,这意味着它可以在任何平台上运行,并被全球性分销商和已经在Hadoop之上构建了其他软件层面的大数据技术供应商所使用。
Hadoop 分布式文件系统(HDFS)这个功能使Hadoop变得非常有用。这是Hadoop的存储系统,它把数据分解处理成称之为”块”的较小部分。这些块随后被分布于整个集群。这种数据分布允许映射(Map)和化简(Reduce)后的功能被执行于更小的子集,而不是在一个大的数据集上。这提高了效率,节约了处理时间, 提高了处理海量数据所需的可扩展性。
MapReduce是一个软件框架和模型,可以处理和检索并行存储在Hadoop系统上的海量数据。MapReduce的函数库已经被用多种编程语言所编写,所以Hadoop能与他们配合工作。另外,MapReduce可以处理结构化和非结构化数据。
MapReduce 的工作分两个步骤。第一步骤是“映射(Map)”,其将数据分割为更小的子集,并把这些子集分配到集群中的不同节点上。系统内的节点可以再次执行这项操作,从而导致了一个多层次树结构,它将数据分割于越来越小的子集中。在这些节点上对数据进行处理并把结果返回到“主节点”。 第二步骤是“化简(Reduce)”。 主节点收集所有返回的数据,并把它们组合成某种可重复使用的形式输出。MapReduce框架可以管理所有的各种并行任务和整个系统,并形成Hadoop 的心脏。
通过融合多种技术,海量数据可以很容易地存储,并在几分之一秒内被处理和分析。在过去几年中,对于大数据生态系统Hadoop已被证明非常成功,并且看起来前途非常光明。随着Hadoop2.0的开发,它现在使用一种全新的作业处理框架,称之为YARN。YARN是Yet Another Resource Negotiator的缩写,它是一个管理集群计算资源的应用程序调度模块。YARN使多个数据处理引擎,如交互式SQL,实时流媒体,数据科学和批量处理来处理存储在一个单一平台上的数据,创建一个全新的方法来分析。
Hadoop是一个强大的工具,自2005年以来,超过25%的企业目前使用Hadoop来管理他们的数据,在2012年同比增长了10%。以下是企业使用它的几个原因:
低成本;
高计算能力;
高扩展性;
存储灵活性;
数据保护。
Hadoop被用于几乎所有行业,从零售业,到政府,金融。下面由Solix制作的信息图表提供了一个对Hadoop的更深入描述以及一些有趣的预测。