就在昨天,顶级Apache开源项目Hadoop发布了1.0.0版。Hadoop是前雅虎开发者Doug Cutting开发的分布式计算平台,名字源于玩具象,至今已被数千家公司用于分析大容量数据。Hadoop 1.0.0主要是修正了bug,改进了性能和兼容性。它的上一个版本是0.20.205.0,新版的版本号原是 0.20.205.1,但开发者表示,Hadoop已经成熟几年前就做好了应用于生产的准备,但有些客户在采用前希望看到版本号是1.0,所以他们决定直接跳到了1.0。

话说,Hadoop是一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储。Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有着高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上。而且它提供高传输率(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求(requirements)这样可以流的形式访问(streaming access)文件系统中的数据。
Hadoop这个名字不是一个缩写,它是一个虚构的名字。该项目的创建者,Doug Cutting如此解释Hadoop的得名:"这个名字是我孩子给一个棕黄色的大象样子的填充玩具命名的。我的命名标准就是简短,容易发音和拼写,没有太多的意义,并且不会被用于别处。小孩子是这方面的高手。Google就是由小孩命名的。”
Hadoop 由 Apache Software Foundation 公司于 2005 年秋天作为 Lucene 的子hadoop logo项目Nutch的一部分正式引入。它受到最先由 Google Lab 开发的 MapReduce 和 Google File System 的启发。2006 年 3 月份,MapReduce 和 Nutch Distributed File System (NDFS) 分别被纳入称为 Hadoop 的项目中。 Hadoop 是最受欢迎的在 Internet 上对搜索关键字进行内容分类的工具,但它也可以解决许多要求极大伸缩性的问题。例如,如果您要 grep 一个 10TB 的巨型文件,会出现什么情况?在传统的系统上,这将需要很长的时间。但是 Hadoop 在设计时就考虑到这些问题,因此能大大提高效率。
Hadoop 是一个能够对大量数据进行分布式处理的软件框架。但是 Hadoop 是以一种可靠、高效、可伸缩的方式进行处理的。Hadoop 是可靠的,因为它假设计算元素和存储会失败,因此它维护多个工作数据副本,确保能够针对失败的节点重新分布处理。Hadoop 是高效的,因为它以并行的方式工作,通过并行处理加快处理速度。Hadoop 还是可伸缩的,能够处理 PB 级数据。此外,Hadoop 依赖于社区服务器,因此它的成本比较低,任何人都可以使用。Hadoop带有用 Java 语言编写的框架,因此运行在 Linux 生产平台上是非常理想的。Hadoop 上的应用程序也可以使用其他语言编写,比如 C++。
Hadoop 有许多元素构成。其最底部是 Hadoop Distributed File SystHadoop 集群的简化视图em(HDFS),它存储 Hadoop 集群中所有存储节点上的文件。HDFS(对于本文)的上一层是 MapReduce 引擎,该引擎由 JobTrackers 和 TaskTrackers 组成。
在互联网这个领域一直有这样的说法:"如果老二无法战胜老大,那么就把老大赖以生存的东西开源吧"。当年Yahoo!与Google还是处在强烈竞 争关系时候,招聘了Doug(Hadoop创始人),把Google老大赖以生存的DFS与Map-Reduce开源了,开始了Hadoop的童年时期。 差不多在2008年的时候,Hadoop才算逐渐成熟。
从初创到现在,Hadoop经过了至少7年的积累,现在的Hadoop不仅是当年的老二Yahoo的专用产品了,从Hadoop长长的用户名单中, 可以看到Facebook、Linkedin、Amazon,可以看到EMC、eBay、Twitter、IBM、Microsoft,、Apple、 HP…国内的公司有淘宝、百度等等。









