企业宣传,产品推广,广告招商,广告投放联系seowdb

一文搞懂Hadoop生态系统

01Hadoop概述

Hadoop体系也是一个计算框架,在这个框架下,可以经常使用一种繁难的编程形式,经过多台计算机构成的集群,散布式处置大数据集。Hadoop是可扩展的,它可以繁难地从繁多主机扩展到数千台主机,每台主机启动本地计算和存储。除了依赖于配件交付的高可用性,软件库自身也提供数据包全,并可以在运行层做失败处置,从而在计算机集群的顶层提供高可用服务。Hadoop**生态圈组件如图1所示。

图1 Haddoop开源生态

02Hadoop生态圈

Hadoop包含以下4个基本模块。

1)Hadoop基础性能库:支持其余Hadoop模块的通用程序包。

2)HDFS:一个散布式文件系统,能够以高吞吐量访问运行中的数据。

3)YARN:一个作业调度和资源治理框架。

4)MapReduce:一个基于YARN的大数据并行处置程序。

除了基本模块,Hadoop还包含以下名目。

1)Ambari:基于Web,用于性能、治理和监控Hadoop集群。支持HDFS、MapReduce、Hive、HCatalog、HBase、ZooKeeper、Oozie、Pig和Sqoop。Ambari还提供显示集群肥壮状况的仪表盘,如热点图等。Ambari以图形化的形式检查MapReduce、Pig和Hive运行程序的运转状况,因此可以经过对用户友好的形式诊断运行的性能疑问。

2)Avro:数据序列化系统。

3)Cassandra:可扩展的、无单点缺点的NoSQL多主数据库。

4)Chukwa:用于大型散布式系统的数据采集系统。

5)HBase:可扩展的散布式数据库,支持大表的结构化数据存储。

6)Hive:数据仓库基础架构,提供数据汇总和命令行即席查问性能。

7)Mahout:可扩展的机器学习和数据开掘库。

8)Pig:用于并行计算的初级数据谣言语和口头框架。

9)Spark:可高速处置Hadoop数据的通用计算引擎。Spark提供了一种繁难而富裕表白才干的编程形式,支持ETL、机器学习、数据流处置、图像计算等多种运行。

10)Tez:完整的数据流编程框架,基于YARN建设,提供弱小而灵敏的引擎,可口头恣意有向无环图(DAG)数据处置义务,既支持批处置又支持交互式的用户场景。Tez曾经被Hive、Pig等Hadoop生态圈的组件所驳回,用来代替MapReduce作为底层口头引擎。

11)ZooKeeper:用于散布式运行的高性能协调服务。

除了以上这些官网认可的Hadoop生态圈组件之外,还有很多十分低劣的组件这里没有引见,这些组件的运行也十分宽泛,例如基于Hive查问优化的Presto、Impala、Kylin等。

此外,在Hadoop生态圈的周边,还汇集了一群“同伴”,它们只管不曾深化融合Hadoop生态圈,但是和Hadoop有着千头万绪的咨询,并且在各自长于的畛域起到了无法代替的作用。图2是阿里云E-MapReduce平台整合的Hadoop生态体系中的组件,比Apache提供的组合更为弱小。

图2 阿里云E-MapReduce的产品架构

上方繁难引见其中比拟关键的成员。

1)Presto:开源散布式SQL查问引擎,实用于交互式剖析查问,数据量支持GB到PB级。Presto可以处置少数据源,是一款基于内存计算的MPP架构查问引擎。

2)Kudu:与HBase相似的列存储散布式数据库,能够提供极速降级和删除数据的性能,是一款既支持随机读写,又支持OLAP剖析的大数据存储引擎。

3)Impala:高效的基于MPP架构的极速查问引擎,基于Hive并经常使用内存启动计算,统筹ETL性能,具有实时、批处置、多并发等好处。

4)Kylin:开源散布式剖析型数据仓库,提供Hadoop/Spark之上的SQL查问接口及多维剖析(OLAP)才干,支持超大规模数据的压秒级查问。

5)Flink:一款高吞吐量、低提前的针对流数据和批数据的散布式实时处置引擎,是实时处置畛域的新星。

6)Hudi:Uber开发并开源的数据湖处置打算,Hudi(Hadoop updates andincrementals)支持HDFS数据的修正和增量降级操作。

03Hadoop的优缺陷

当初,Hadoop曾经演变成了一个生态系统,系统内的组件千差万别,有的还是孵化阶段,有的风华正茂,有的垂垂老矣。其中,最经久不衰的当属HDFS和Hive两大组件,稍纵即逝的包含HBase、MapReduce、Presto等,风华正茂的当属Spark和Flink。

古语有云,“成也萧何,败也萧何”。大数据成功最**的要素是开源,但它存在的最大的疑问也是开源。很多组件只管依托开源可以极速成熟,但是一旦成熟,就会发生生态紊乱和版本割裂的状况,其中最典型的就是Hive。

Hive1.x之前的版本色能不完善,1.x版和2.x版算是逐渐优化到基本可用了,到了3.x版又发生了各种疑问,并且大局部云平台Hive版本都逗留在2.x版,新版本推行乏力。另外,Hive的计算引擎也是饱受争议的,Hive支持的计算引擎关键有MapReduce、Tez、Spark、Presto。十多年来MapReduce的计算速度并没有优化;Tez只管计算速度快,但是装置须要定制化编译和部署;Spark的计算速度最快,但是对JDBC支持不友好;Presto计算速度快并且支持JDBC,但是语法又和Hive不分歧。声明一下,这里说的快只是相对MapReduce引擎而言的,跟传统数据库的速度相比依然相差1到2个数量级。

总的来说,基于Hadoop开收回来的大数据平台,通常具有以下特点。

1)扩容才干:能够牢靠地存储和处置PB级的数据。Hadoop生态基本驳回HDFS作为存储组件,吞吐量高、稳固牢靠。

2)老本低:可以应用便宜、通用的机器组成的主机群散发、处置数据。这些主机群总计可达数千个节点。

3)高效率:经过散发数据,Hadoop可以在数据所在节点上并行处置,处置速度十分快。

4)牢靠性:Hadoop能智能保养数据的多份备份,并且在义务失败后能智能从新部署计算义务。

Hadoop生态同时也存在不少缺陷。

1)由于Hadoop驳回文件存储系统,所以读写时效性较差,至今没有一款既支持极速降级又支持高效查问的组件。

2)Hadoop生态系统日趋复杂,组件之间的兼容性差,装置和保养比拟艰巨。

3)Hadoop各个组件性能相对繁多,好处很清楚,缺陷也很清楚。

4)云生态对Hadoop的冲击十分清楚,云厂约定制化组件造成版本分歧进一步扩展,无法构成合力。

5)全体生态基于Java开发,容错性较差,可用性不高,组件容易挂掉。

关于作者:王春波,资深架构师和数据仓库专家,现任上海启高消息科技有限公司大数据架构师,ApacheDoris和openGauss奉献者,Greenplum中文社区介入者。 群众号“数据中台研习社”运营者。

© 版权声明
评论 抢沙发
加载中~
每日一言
不怕万人阻挡,只怕自己投降
Not afraid of people blocking, I'm afraid their surrender