Hadoop⽣态圈介绍
1. hadoop ⽣态概况
是⼀个由Apache基⾦会所开发的基础架构。
⽤户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利⽤集的威⼒进⾏⾼速运算和存储。
具有可靠、⾼效、可伸缩的特点。
Hadoop的核⼼是YARN,HDFS和Mapreduce
下图是hadoop⽣态系统,集成spark⽣态圈。在未来⼀段时间内,hadoop将于spark共存,hadoop与spark
都能部署在yarn、mesos的资源管理系统之上
下⾯将分别对以上各组件进⾏简要介绍,具体介绍参见后续系列博⽂。
2、(Hadoop分布式⽂件系统)
源⾃于Google的GFS论⽂,发表于2003年10⽉,HDFS是GFS克隆版。
HDFS是Hadoop体系中数据存储管理的基础。它是⼀个⾼度容错的系统,能检测和应对硬件故障,⽤于在低成本的通⽤硬件上运⾏。HDFS简化了⽂件的⼀致性模型,通过流式数据访问,提供⾼吞吐量应⽤程序数据访问功能,适合带有⼤型数据集的应⽤程序。
它提供了⼀次写⼊多次读取的机制,数据以块的形式,同时分布在集不同物理机器上。
3、(分布式计算框架)
源⾃于google的MapReduce论⽂,发表于2004年12⽉,Hadoop MapReduce是google MapReduce 克隆版。
MapReduce是⼀种分布式计算模型,⽤以进⾏⼤数据量的计算。它屏蔽了分布式计算框架细节,将计算抽象成map和reduce两部分,
其中Map对数据集上的独⽴元素进⾏指定的操作,⽣成键-值对形式中间结果。Reduce则对中间结果中相同“键”的所有“值”进⾏规约,以得到最终结果。
MapReduce⾮常适合在⼤量计算机组成的分布式并⾏环境⾥进⾏数据处理。
4. (分布式列存数据库)
源⾃Google的Bigtable论⽂,发表于2006年11⽉,HBase是Google Bigtable克隆版
HBase是⼀个建⽴在HDFS之上,⾯向列的针对结构化数据的可伸缩、⾼可靠、⾼性能、分布式和⾯向列的动态模式数据库。
HBase采⽤了BigTable的数据模型:增强的稀疏排序映射表(Key/Value),其中,键由⾏关键字、列关键字和时间戳构成。
HBase提供了对⼤规模数据的随机、实时读写访问,同时,HBase中保存的数据可以使⽤MapReduce来处理,它将数据存储和并⾏计算完美地结合在⼀起。
5. (分布式协作服务)
源⾃Google的Chubby论⽂,发表于2006年11⽉,Zookeeper是Chubby克隆版
解决分布式环境下的数据管理问题:统⼀命名,状态同步,集管理,配置同步等。
Hadoop的许多组件依赖于Zookeeper,它运⾏在计算机集上⾯,⽤于管理Hadoop操作。
6. (数据仓库)
由facebook开源,最初⽤于解决海量结构化的⽇志数据统计问题。
Hive定义了⼀种类似SQL的查询语⾔(HQL),将SQL转化为MapReduce任务在Hadoop上执⾏。通常⽤于离线分析。
HQL⽤于运⾏存储在Hadoop上的查询语句,Hive让不熟悉MapReduce开发⼈员也能编写数据查询语句,然后这些语句被翻译为Hadoop上⾯的MapReduce任务。
7.(ad-hoc脚本)
由yahoo!开源,设计动机是提供⼀种基于MapReduce的ad-hoc(计算在query时发⽣)数据分析⼯具
Pig定义了⼀种数据流语⾔—Pig Latin,它是MapReduce编程的复杂性的抽象,Pig平台包括运⾏环境和⽤于分析Hadoop数据集的脚本语⾔(Pig Latin)。
其编译器将Pig Latin翻译成MapReduce程序序列将脚本转换为MapReduce任务在Hadoop上执⾏。通常⽤于进⾏离线分析。
8.(数据ETL/同步⼯具)
Sqoop是SQL-to-Hadoop的缩写,主要⽤于传统数据库和Hadoop之前传输数据。数据的导⼊和导出本质上是Mapreduce程序,充分利⽤了MR的并⾏化和容错性。
Sqoop利⽤数据库技术描述数据架构,⽤于在关系数据库、数据仓库和Hadoop之间转移数据。
9.(⽇志收集⼯具)
Cloudera开源的⽇志收集系统,具有分布式、⾼可靠、⾼容错、易于定制和扩展的特点。
它将数据从产⽣、传输、处理并最终写⼊⽬标的路径的过程抽象为数据流,在具体的数据流中,数据源⽀持在Flume中定制数据发送⽅,从⽽⽀持收集各种不同协议数据。
同时,Flume数据流提供对⽇志数据进⾏简单处理的能⼒,如过滤、格式转换等。此外,Flume还具有能够将⽇志写往各种数据⽬标(可定制)的能⼒。
总的来说,Flume是⼀个可扩展、适合复杂环境的海量⽇志收集系统。当然也可以⽤于收集其他类型数据
10.(数据挖掘算法库)
Mahout起源于2008年,最初是Apache Lucent的⼦项⽬,它在极短的时间内取得了长⾜的发展,现在是Apache的顶级项⽬。hadoop与spark的区别与联系
Mahout的主要⽬标是创建⼀些可扩展的机器学习领域经典算法的实现,旨在帮助开发⼈员更加⽅便快捷地创建智能应⽤程序。
Mahout现在已经包含了聚类、分类、推荐引擎(协同过滤)和频繁集挖掘等⼴泛使⽤的数据挖掘⽅法。
除了算法,Mahout还包含数据的输⼊/输出⼯具、与其他存储系统(如数据库、MongoDB 或Cassandra)集成等数据挖掘⽀持架构。
11. (⼯作流调度器)
Oozie是⼀个可扩展的⼯作体系,集成于Hadoop的堆栈,⽤于协调多个MapReduce作业的执⾏。它能够管理⼀个复杂的系统,基于外部事件来执⾏,外部事件包括数据的定时和数据的出现。
Oozie⼯作流是放置在控制依赖DAG(有向⽆环图 Direct Acyclic Graph)中的⼀组动作(例如,Hadoop的Map/Reduce作业、Pig作业等),其中指定了动作执⾏的顺序。
Oozie使⽤hPDL(⼀种XML流程定义语⾔)来描述这个图。
12. (分布式资源管理器)
YARN是下⼀代MapReduce,即MRv2,是在第⼀代MapReduce基础上演变⽽来的,主要是为了解决原始Hadoop扩展性较差,不⽀持多计算框架⽽提出的。
Yarn是下⼀代 Hadoop 计算平台,yarn是⼀个通⽤的运⾏时框架,⽤户可以编写⾃⼰的计算框架,在该运⾏环境中运⾏。
⽤于⾃⼰编写的框架作为客户端的⼀个lib,在运⽤提交作业时打包即可。该框架为提供了以下⼏个组件:
- 资源管理:包括应⽤程序管理和机器资源管理
- 资源双层调度
- 容错性:各个组件均有考虑容错性
- 扩展性:可扩展到上万个节点
13. (分布式资源管理器)
Mesos诞⽣于UC Berkeley的⼀个研究项⽬,现已成为Apache项⽬,当前有⼀些公司使⽤Mesos管理集资源,⽐如Twitter。
与yarn类似,Mesos是⼀个资源统⼀管理和调度的平台,同样⽀持⽐如MR、steaming等多种运算框架。
14. (分布式内存⽂件系统)
Tachyon(/'tæki:ˌɒn/ 意为超光速粒⼦)是以内存为中⼼的分布式⽂件系统,拥有⾼性能和容错能⼒,
能够为集框架(如Spark、MapReduce)提供可靠的内存级速度的⽂件共享服务。
Tachyon诞⽣于UC Berkeley的AMPLab。
15. (DAG计算模型)
Tez是Apache最新开源的⽀持DAG作业的计算框架,它直接源于MapReduce框架,核⼼思想是将Map和Reduce两个操作进⼀步拆分,
即Map被拆分成Input、Processor、Sort、Merge和Output, Reduce被拆分成Input、Shuffle、Sort、Merge、Processor和Output等,
这样,这些分解后的元操作可以任意灵活组合,产⽣新的操作,这些操作经过⼀些控制程序组装后,可形成⼀个⼤的DAG作业。
⽬前hive⽀持mr、tez计算模型,tez能完美⼆进制mr程序,提升运算性能。
16. (内存DAG计算模型)
Spark是⼀个Apache项⽬,它被标榜为“快如闪电的集计算”。它拥有⼀个繁荣的开源社区,并且是⽬前最活跃的Apache项⽬。
最早Spark是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通⽤的并⾏计算框架。
Spark提供了⼀个更快、更通⽤的数据处理平台。和Hadoop相⽐,Spark可以让你的程序在内存中运⾏时速度提升100倍,或者在磁盘上运⾏时速度提升10倍
17. (图计算模型)
Apache Giraph是⼀个可伸缩的分布式迭代图处理系统,基于Hadoop平台,灵感来⾃ BSP (bulk synchronous parallel) 和 Google 的Pregel。
最早出⾃雅虎。雅虎在开发Giraph时采⽤了Google⼯程师2010年发表的论⽂《Pregel:⼤规模图表处理系统》中的原理。后来,雅虎将Giraph捐赠给Apache软件基⾦会。
⽬前所有⼈都可以下载Giraph,它已经成为Apache软件基⾦会的开源项⽬,并得到Facebook的⽀持,获得多⽅⾯的改进。
18. (图计算模型)
Spark GraphX最先是伯克利AMPLAB的⼀个分布式图计算框架项⽬,⽬前整合在spark运⾏框架中,为其提供BSP⼤规模并⾏图计算能⼒。
19. (机器学习库)
Spark MLlib是⼀个机器学习库,它提供了各种各样的算法,这些算法⽤来在集上针对分类、回归、聚类、协同过滤等。
20. (流计算模型)
Spark Streaming⽀持对流数据的实时处理,以微批的⽅式对实时数据进⾏计算
21. (分布式消息队列)
Kafka是Linkedin于2010年12⽉份开源的消息系统,它主要⽤于处理活跃的流式数据。
活跃的流式数据在web⽹站应⽤中⾮常常见,这些数据包括⽹站的pv、⽤户访问了什么内容,搜索了什么内容等。
这些数据通常以⽇志的形式记录下来,然后每隔⼀段时间进⾏⼀次统计处理。
22. (hbase sql接⼝)
Apache Phoenix 是HBase的SQL驱动,Phoenix 使得Hbase ⽀持通过JDBC的⽅式进⾏访问,并将你的SQL查询转换成Hbase的扫描和相应的动作。
23. (安全管理⼯具)
Apache ranger是⼀个hadoop集权限框架,提供操作、监控、管理复杂的数据权限,它提供⼀个集中的管理机制,管理基于yarn的hadoop ⽣态圈的所有数据权限。
24. (hadoop安全⽹关)
Apache knox是⼀个访问hadoop集的restapi⽹关,它为所有rest访问提供了⼀个简单的访问接⼝点,能完成3A认证
(Authentication,Authorization,Auditing)和SSO(单点登录)等
25. (数据⽣命周期管理⼯具)
Apache Falcon 是⼀个⾯向Hadoop的、新的数据处理和管理平台,设计⽤于数据移动、数据管道协调、⽣命周期管理和数据发现。它使终端⽤户可以快速地将他们的数据及其相关的处理和管理任务“上载(onboard)”到Hadoop集。
26.(安装部署配置管理⼯具)
Apache Ambari 的作⽤来说,就是创建、管理、监视 Hadoop 的集,是为了让 Hadoop 以及相关的⼤数据软件更容易使⽤的⼀个web⼯具。
参考⽂献:
Hadoop⽣态系统介绍
⼤数据和Hadoop⽣态圈,Hadoop发⾏版和基于Hadoop的企业级应⽤Oozie介绍
统⼀资源管理与调度平台(系统)介绍
Tachyon简介
Apache Tez:⼀个运⾏在YARN之上⽀持DAG作业的计算框架Giraph:基于Hadoop的开源图形处理平台
Hadoop家族学习路线图
基于Spark的图计算框架 GraphX ⼊门介绍
Apache Spark ⼊门简介
Ambari——⼤数据平台的搭建利器
消息系统Kafka介绍
使⽤Apache Phoenix 实现 SQL 操作HBase
⾯向Hadoop的、新的数据处理和管理平台:Apache Falcon
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论