Hadoop大数据分析技术
上QQ阅读APP看书,第一时间看更新

1.2.3 Hadoop生态系统和组件介绍

Hadoop生态系统组件主要包括:MapReduce、HDFS、HBase、Hive、Pig、ZooKeeper、Mahout、Flume、Sqoop,具体如图1-4所示。

图1-4 Hadoop生态系统组件

下面具体介绍其中的主要组件:

· MapReduce:MapReduce是使用集群的并行、分布式算法处理大数据集的可编程模型。Apache MapReduce是从Google MapReduce派生而来的,用于在大型集群中简化数据处理。当前的Apache MapReduce版本基于Apache YARN框架构建的。YARN是“Yet-Another-Resource-Negotiator”的缩写。YARN可以运行非MapReduce模型的应用。YARN是Apache Hadoop想要超越MapReduce数据处理能力的一种尝试。

· HDFS:The Hadoop Distributed File System(HDFS)提供跨多个机器存储大型文件的一种解决方案。Hadoop和HDFS都是从Google File System(GFS)中派生的。Hadoop 2.0.0之前,NameNode是HDFS集群的一个单点故障(SPOF)。利用ZooKeeper、HDFS高可用性特性解决了这个问题,提供选项来运行两个重复的NameNodes,在同一个集群中,同一个Active/Passive配置。

· HBase:灵感来源于Google BigTable。HBase是Google BigTable的开源实现,类似Google BigTable利用GFS作为其文件存储系统,HBase利用Hadoop HDFS作为其文件存储系统;Google运行MapReduce来处理BigTable中的海量数据,HBase同样利用Hadoop MapReduce来处理HBase中的海量数据;Google BigTable利用Chubby作为协同服务,HBase利用ZooKeeper作为协同服务。

· Hive:Facebook开发的数据仓库基础设施,用于数据汇总、查询和分析。Hive提供类似SQL的语言(不兼容SQL92)——HiveQL。

· Pig:Pig提供一个引擎在Hadoop并行执行数据流。Pig包含一种语言:Pig Latin,用来表达这些数据流。Pig Latin包括大量的传统数据操作(join、sort、filter等),也可以让用户开发他们自己的函数,用来查看、处理和编写数据。Pig在Hadoop上运行,在Hadoop分布式文件系统(HDFS)和Hadoop处理系统MapReduce中都可以使用。Pig使用MapReduce来执行所有的数据处理,编译Pig Latin脚本,用户可以编写一个系列、一个或者多个的MapReduce作业,然后执行。Pig Latin看起来跟大多数编程语言都不一样,没有if状态和for循环。

· ZooKeeper:ZooKeeper是Hadoop的正式子项目,它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂且容易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。ZooKeeper是Google的Chubby一个开源的实现,是高效和可靠的协同工作系统。ZooKeeper能够用来执行Leader选举、配置信息维护等。在一个分布式的环境中,我们需要一个Master实例用来存储一些配置信息,确保文件写入的一致性等。

· Mahout:基于MapReduce的机器学习库和数学库。