1.2 Hadoop版本和生态系统
1. Hadoop版本的优缺点
目前市面上Hadoop版本主要有两种:Apache版本和CDH版本。
(1)Aapche版本的Hadoop
Aapche Hadoop优势:对硬件要求低。
Aapche Hadoop劣势:搭建烦琐,维护烦琐,升级烦琐,添加组件烦琐。
Apache版本Hadoop集群中YARN的界面如图1-1所示,HDFS的界面图1-2所示。
图1-1 YARN的界面
图1-2 HDFS的界面
(2)CDH版本的Hadoop
CDH优势:搭建方便,维护较为容易,升级以及迁移容易,添加组件容易。
CDH缺点:对硬件要求高。
Cloudera Manager是一个管理CDH的端到端的应用。主要作用包括:管理、监控、诊断、集成。
CDH的Hadoop版本集群中CDH管理界面如图1-3所示。
图1-3 CDH管理界面
2. CDH架构
CDH架构如图1-4所示。
图1-4 CDH架构
(1)Server
管理控制台服务器和应用程序逻辑。
负责软件安装、配置,启动和停止服务。
管理服务运行的集群。
(2)Agent
安装在每台主机上。
负责启动和停止进程,配置、监控主机。
(3)Management Service
由一组角色组成的服务,执行各种监视、报警和报告功能。
3. Hadoop生态系统和组件介绍
Hadoop生态组件主要包括:MapReduce、HDFS、HBase、Hive、Pig、ZooKeeper、Mahout。Hadoop生态系统组件如图1-5所示。
图1-5 Hadoop生态系统组件
(1)MapReduce:MapReduce是使用集群的并行、分布式算法处理大数据集的可编程模型。Apache MapReduce是从Google MapReduce派生而来的:在大型集群中简化数据处理。当前的Apache MapReduce版本基于Apache YARN框架构建。YARN是“Yet-Another-Resource-Negotiator”的缩写。YARN可以运行非MapReduce模型的应用。YARN是Apache Hadoop想要超越MapReduce数据处理能力的一种尝试。
(2)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配置。
(3)HBase:灵感来源于Google BigTable。HBase是Google Bigtable的开源实现,类似Google Bigtable利用GFS作为其文件存储系统,HBase利用Hadoop HDFS作为其文件存储系统;Google运行MapReduce来处理Bigtable中的海量数据,HBase同样利用Hadoop MapReduce来处理HBase中的海量数据;Google Bigtable利用Chubby作为协同服务,HBase利用ZooKeeper作为对应。
(4)Hive:Facebook开发的数据仓库基础设施。数据汇总、查询和分析。Hive提供类似SQL的语言(不兼容SQL92):HiveQL。
(5)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循环。
(6)ZooKeeper:ZooKeeper是Hadoop的正式子项目,它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。ZooKeeper是Google的Chubby一个开源的实现,是高效和可靠的协同工作系统。ZooKeeper能够用来执行leader选举、配置信息维护等。在一个分布式的环境中,我们需要一个Master实例用来存储一些配置信息,确保文件写入的一致性等。
(7)Mahout :基于MapReduce的机器学习库和数学库。