Apache Hadoop 项目开发的开源软件提供了可靠、可伸缩、分布式的计算。它是Google类似技术的开源版本。使用Hadoop的公司有Yahoo!, Facebook, Twitter, IBM等。
为什么要开发这样的系统呢?“When data exists in this quantity (terabit/day or petabit/day), one of the processing limitations is that it takes a significant amount of time to move the data. Apache Hadoop has emerged to address these concerns with its unique approach of moving the work to the data and not the other way around.” 简单翻译就是,当数据量非常庞大的时候,移动数据时间也非常庞大。为了处理这个挑战,Hadoop采用将数据处理工作移动到数据处而不是反向移动的方式。
Hadoop 包括如下的子项目:
- Hadoop Common: 项目共用软件包
- Chukwa: 数据收集系统以管理大型分布式系统
- HBase: 可伸缩、分布式、结构化数据库
- HDFS: 分布式文件系统
- Hive: 数据仓库以提供数据整合以及ad hoc查询
- MapReduce: 分布式大型数据处理软件框架
- Pig: 数据流语言以及平行化执行框架
- ZooKeeper: 为分布式应用程序提供高性能协调服务
Hadoop的工作原理可以用下面的图简单描述:
还有很多基于Hadoop开发的项目:
- Nutch:开发基于 Nutch 的集群式搜索引擎
- Mahout:基于 Apache Mahout 构建社会化推荐引擎
- Cassandra: 分布式 Key-Value 存储系统:Cassa
如果你想进一步了解Hadoop,《Hadoop权威指南(中文版)》将是你第一选择了,它是Hadoop的开发者写的,所以相当的权威性。