Hadoop是一个能够对大量数据进行分布式处理的软件框架,具有可靠、高效、可伸缩的特点。Hadoop的核心是HDFS和MapReduce,在Hadoop2.X中还包括YARN。图10-1为Hadoop2.X的生态系统。
图10-1 Hadoop2.X的生态系统
Hadoop2.X的生态系统主要包括Hive、HBase、Pig、Sqoop、Flume、Zookeeper、Mahout、Spark、Storm、Shark、Phoenix、Tez、Ambari、YARN等。
·Hive(基于Hadoop的数据仓库):用于Hadoop的一个数据仓库系统,它提供了类似于SQL的查询语言,通过使用该语言可以方便地进行数据汇总、特定查询以及分析存放在Hadoop兼容文件系统中的大数据。
·Hbase(分布式列存数据库):一种分布的、可伸缩的、大数据存储库,支持随机、实时读/写访问。
·Pig(基于Hadoop的数据流系统):分析大数据集的一个平台,该平台由一种表达数据分析程序的高级语言和对这些程序进行评估的基础设施一起组成。
·Sqoop(数据同步工具):为高效传输批量数据而设计的一种工具,用于Apache Hadoop和结构化数据存储库(如关系型数据库)之间的数据传输。
·Flume(日志收集工具):一种分布式的、可靠的、可用的服务,用于高效搜集、汇总、移动大量日志数据。
·Zookeeper(分布式协作服务):一种集中服务,用于维护配置信息、命名、提供分布式同步以及提供分组服务。(www.xing528.com)
·Mahout(数据挖掘算法库):一种基于Hadoop的机器学习和数据挖掘的分布式计算框架算法集,实现了多种MapReduce模式的数据挖掘算法。
·Spark:一个开源数据分析集群计算框架,最初由加州大学伯克利分校AMPLab开发,建立于HDFS之上。Spark与Hadoop一样用于构建大规模、低延时的数据分析应用。采用Scala语言实现,使用Scala作为应用框架。
·Storm:一个分布式的、容错的实时计算系统,由BackType开发,后被Twitter收购。Storm属于流处理平台,多用于实时计算并更新数据库。Storm也可以用于“连续计算”(Continuous Computation),对数据流做连续查询,在计算时就将结果以流的形式输出给用户。它还可以用于“分布式RPC(远程过程调用,Remote Procedure Call Protocol)”,以并行的方式运行大型的运算。
·Shark:即Hive on Spark,一个专门为Spark打造的大规模数据仓库系统,兼容Apache Hive。无须修改现有的数据或者查询,就可以用100倍的速度执行HiveQL。Shark支持Hive查询语言、元存储、序列化格式及自定义函数,与现有Hive部署无缝集成,是一个更快、更强大的替代方案。
·Phoenix:一个构建在Apache HBase之上的SQL中间层,完全使用Java编写,提供了一个客户端可嵌入的JDBC驱动。Phoenix查询引擎会将SQL查询转换为一个或多个HBase Scan,并编排执行以生成标准的JDBC结果集。直接使用HBase API、协同处理器与自定义过滤器,对于简单查询来说,其性能量级是毫秒;对于百万级别的行数来说,其性能量级是秒。
·Tez:一个基于Hadoop YARN之上的DAG(有向无环图,Directed Acyclic Graph)计算框架。它把MapReduce过程拆分为若干个子过程,同时可以把多个MapReduce任务组合成一个较大的DAG任务,减少了MapReduce之间的文件存储。同时合理组合其子过程,减少任务的运行时间。
·Ambari:一个供应、管理和监视Apache Hadoop集群的开源框架,它提供了一个直观的操作工具和一个健壮的Hadoop API,可以隐藏复杂的Hadoop操作,使集群操作大大简化。
·YARN(Yet Another Resource Negotiator,另一种资源协调者):YARN是一种新的Hadoop资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度。它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。