Hadoop拥有庞大且充满活力的开发者社区,但是Hadoop生态系统中的很多项目在名称和功能的搭配上存在很大的出入,这直接导致很多朋友难以区分每个项目。功能和使用目的。作为Hadoop的核心,HDFS和MapReduce是两个不可回避的要素。但是来自开发人员和企业的大量贡献使Hadoop成为一个更复杂的平台。生态系统中的一些项目是ApacheFoundation项目(在下图中标记为“A”),而其他项目则在Apache许可下但由公司运行(在下图中标记为“AL”)。在今天的文章中,我们将回顾一下Hadoop的发展历程,看看今天它的阵容中包括了哪些“大咖”。它能做什么:作为Hadoop的文件系统或存储机制。它的作用:创建一个可重复、容错且可扩展的文件系统,旨在处理大型文件。利用数据局部性提高MapReduce任务的数据输入性能。它的作用:高度可扩展的数据库。它的作用:允许我们以线性方式扩展数据库。提供可调整的数据一致性级别控制。它能做什么:使用HDFS创建高度可扩展的数据库。它如何提供帮助:通过随机访问启用高度可扩展的功能。使用HDFS保证数据的严格一致性。它能做什么:帮助在分布式节点之间同步数据。它如何提供帮助:在集群中的所有节点上维护一致的分布式小规模数据。#p#能做什么:把一个工作分成多个任务,同时执行。它的作用:框架抽象了分布式系统的困难组件,允许系统同时处理大量数据。它的作用:允许用户通过查询语言操作数据。它的作用:帮助SQL程序员通过创建类似SQL的查询来使用MapReduce。它能做什么:在大规模数据中实现低延迟查询。它的作用:帮助SQL程序员通过创建类似SQL的查询来加速大数据访问。它可以做什么:使用数据流或脚本语言进行数据处理。它的作用:帮助程序员使用数据流语言利用MapReduce功能。它的作用:利用预先编写的库在MapReduce中运行机器学习算法。它如何提供帮助:允许用户通过库创建MapReduce推荐和集群。使用现有代码加速开发。它的作用:利用预先编写的库在MapReduce中运行图形算法。它如何提供帮助:用户不再需要重写图形算法来使用MapReduce。使用现有代码加速开发。可以做什么:运行测试以验证MapReduce作业功能的正确性。它如何提供帮助:运行程序测试以验证MapReduce程序的正确操作。提供对象,允许用户模拟输入过程来验证执行结果。#p#能做什么:提供一种便捷的方式来实现MapReduce工作数据的输入输出。它的作用:创建域对象来存储数据。简化MapReduce工作数据的序列化和反序列化。它能做什么:在关系数据库和Hadoop之间移动数据。它的作用:允许将数据从关系数据库移动到Hadoop中进行后期处理。从MapReduce作业中提取数据输出并将其移回关系数据库。它的作用:以可扩展的方式处理大量日志数据。它的作用:将大量日志数据移动到HDFS。由于Flume的可扩展性,它可以处理大量传入数据。它的作用:允许用户通过网络浏览器与Hadoop集群交互。它的作用:用户可以更轻松地与Hadoop集群交互。细粒度的权限设置帮助管理员配置用户。它的作用:在Hadoop中创建复杂的工作流要容易得多。它的作用:允许用户利用Hive、pig和其他项目(如MapReduce)创建复杂的工作流。内置逻辑允许用户按预定步骤处理故障。英文原文:http://www.networkworld.com/slideshow/124977/sizing-up-the-hadoop-ecosystem.html#slide1
