本节书摘来华章计算机《Hadoop与大数据挖掘》一书中的第2章 ,第2.1.5节,张良均 樊 哲 位文超 刘名军 许国杰 周 龙 焦正升 著 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
2.1.5 Hadoop生态系统
如图2-12所示,Hadoop的生态圈其实就是一群动物在狂欢。我们来看看一些主要的框架。
(1)HBase
HBase(Hadoop Database)是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。
(2)Hive
Hive是建立在Hadoop上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。
(3)Pig
Pig是一个基于Hadoop的大规模数据分析平台,它提供的SQL-LIKE语言叫作Pig Latin。该语言的编译器会把类SQL的数据分析请求转换为一系列经过优化处理的Map-Reduce运算。
(4)Sqoop
Sqoop是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(MySQL、post-gresql等)间进行数据的传递,可以将一个关系型数据库中的数据导入Hadoop的HDFS中,也可以将HDFS的数据导入关系型数据库中,如图2-13所示。
(5)Flume
Flume是Cloudera提供的一个高可用、高可靠、分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据。同时,Flume提供对数据进行简单处理并写到各种数据接受方(可定制)的能力,如图2-14所示。
(6)Oozie
Oozie是基于Hadoop的调度器,以XML的形式写调度流程,可以调度Mr、Pig、Hive、shell、jar任务等。
主要的功能如下。
1)Workflow:顺序执行流程节点,支持fork(分支多个节点)、join(将多个节点合并为一个)。
2)Coordinator:定时触发Workflow。
3)Bundle Job:绑定多个Coordinator。
(7)Chukwa
Chukwa是一个开源的、用于监控大型分布式系统的数据收集系统。它构建在Hadoop 的HDFS和MapReduce框架上,继承了Hadoop的可伸缩性和鲁棒性。Chukwa还包含了一个强大和灵活的工具集,可用于展示、监控和分析已收集的数据。
(8)ZooKeeper
ZooKeeper是一个开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件,如图2-15所示。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
(9)Avro
Avro是一个数据序列化的系统。它可以提供:丰富的数据结构类型、快速可压缩的二进制数据形式、存储持久数据的文件容器、远程过程调用RPC。
(10)Mahout
Mahout是Apache Software Foundation(ASF)旗下的一个开源项目,提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。Mahout包含许多实现,包括聚类、分类、推荐过滤、频繁子项挖掘。此外,通过使用 Apache Hadoop库,可以有效地将Mahout扩展到云中。