先简单的认识一下吧:)
Hadoop 由 Apache Software Foundation 公司于 2005 年秋天作为 Lucene 的子项目 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 System(HDFS),它存储 Hadoop 集群中所有存储节点上的文件。HDFS(对于本文)的上一层是 MapReduce 引擎,该引擎由 JobTrackers 和 TaskTrackers 组成。
整个 Hadoop 家族由以下几个子项目组成:
Hadoop Common Hadoop体系最底层的一个模块,Hadoop各子项目提供种工具,如: 各子项目提供种工具,如: 配置文件和日志操作等。 配置文件和日志操作等。 配置文件和日志操作等。 配置文件和日志操作等。
Avro是 doug cutting主持的 RPC ,有点类似 Google 的 protobuf protobuf和 Facebook的 thrift。 avro用来做以后 用来做hadoop的 RPC,使hadoop的 RPC模块通信速度更快、数据结构紧凑。
Chukwa 是基于 Hadoop 的大集群监控系统由 yahoo贡献。
HBase 基于 Hadoop Distributed File System ,是一个开源的基于列存储模型分布式数据库。 ,是一个开源的基于列存储模型分布式数据库。
HDFS 分布式文件系统
hive类似CloudBase,也是基于 hadoop 分布式计算平台上的提供 data warehouse的 sqlsql 功能的一套软件。使得存储在 hadoop 里面的海量数据汇总,即席查询简单化。hive提供 了一套 QL 的查询语言,以 sqlsql 为基础,使用起来很方便。
MapR educe 实现了 MapReduce 编程框架
Pig 是 SQLlike语言,是在MapReduce上构建的一种高级查询语言,把些运算编译进 MapReduce模型的 Map和 Reduce中,并且用户可以定义自己的功能。 Yahoo网格运算部门开发的又一个克隆 Google 的项目 的项目 Sawzall。
Zookeeper 是Google 的 Chubby 一个开源的实现。它是针对大型分布式系统 的可靠协调系统,提供功能包括:配置维护、名字服务分布式同步组等。
ZooKeeper的目标就是 的目标就是 封装好复杂易出错的关键服务,将简单用接口和性能高效、功稳定系统 提供给用户。