前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【大数据版本对比】Hortonworks HDP2.x到3.x技术演进及版本梳理

【大数据版本对比】Hortonworks HDP2.x到3.x技术演进及版本梳理

原创
作者头像
知否大数据
发布2022-06-17 10:29:10
2.9K0
发布2022-06-17 10:29:10
举报
文章被收录于专栏:知否大数据知否大数据
图片
图片

    针对近期搭建HDP3.1.4版本大数据集群,相较之前研究的HDP2.6.3版本,版本跨度大,为更好的了解掌握新版本的新特性,于是对两个版本及区间版本的技术演进做下梳理。   

首先简单介绍下本次大数据集群需要安装的几个组件:

1.1 Ambari

    Ambari是一种基于Web的工具,支持Apache Hadoop集群的创建 、管理和监控。

    Ambari已支持大多数Hadoop组件,包括HDFS、MapReduce、Hive、Pig、 Hbase、Zookeeper、Sqoop和Hcatalog等。Apache Ambari 支持HDFS、MapReduce、Hive、Pig、Hbase、Zookeepr、Sqoop和Hcatalog等的集中管理。也是5个顶级hadoop管理工具之一。

    Ambari 自身也是一个分布式架构的软件,主要由两部分组成:Ambari Server 和 Ambari Agent。简单来说,用户通过 Ambari Server 通知 Ambari Agent 安装对应的软件;Agent 会定时地发送各个机器每个软件模块的状态给 Ambari Server,最终这些状态信息会呈现在 Ambari 的 GUI,方便用户了解到集群的各种状态,并进行相应的维护。

1.2 HDP

    HDP是hortonworks的软件栈,里面包含了hadoop生态系统的所有软件项目,比如HBase,Zookeeper,Hive,Pig等等。

1.3 HDP-UTILS

    HDP-UTILS是工具类库。

登录官网文档,可查看HDP任意版本的技术文档

https://docs.cloudera.com/HDPDocuments/

    查看此两个HDP的版本差距,2.6.3到3.1.4差距6个版本,所以若想对比两个版本的区别,需将区间版本逐一进行新特性梳理累加,即为我们所要结果。

图片
图片

1、HDP2.6.4版本:相较2.6.3并无新特性,版本迭代主要为修复缺陷。

官网DOC:

https://docs.cloudera.com/HDPDocuments/HDP2/HDP-2.6.4/bk_release-notes/content/new_features.html

图片
图片

2、HDP2.6.5版本:主要升级了Kafka和Spark的版本,并无明显新特性。

官网DOC:

https://docs.cloudera.com/HDPDocuments/HDP2/HDP-2.6.5/bk_release-notes/content/new_features.html


3、HDP3.0.0版本:此版本为HDP一个里程碑的大版本。组件版本升级较多,且新特性较多,需逐一介绍:

官网DOC:

https://docs.cloudera.com/HDPDocuments/HDP3/HDP-3.0.0/release-notes/content/relnotes.html

图片
图片

3.1、版本概要

    HDP3.0.0是Hadoop大数据生态的里程碑版本,技术堆栈变化很大,它扩展了周边生态系统(包括深度学习和第三方Docker的应用程序)。许多HDP3.0的新特性基于Apache Hadoop3.1的,包括了容器化、GPU的支持,HDFS纠删码和NameNode联盟。HDP3.0默认安装包括Apache Ranger与Apache Atlas,目的是提供受信任以及安全的数据库。且为了精简技术堆栈,HDP3.0同时移除了一些组件包括Apache Falcon,Apache Mahout, Apache Flume和Apache Hue,并将Apache Slider的功能也引入到Apache YARN中。

HDP3.0.0技术栈架构图:

图片
图片

因为Apache Hadoop 3.1的重大特性进化,让Hadoop生态更加开放包容容器、AI、Cloud。Yarn往更加通用的资源管理框架发展,挑战者K8s。HDFS则往更加实用,稳定的方面发展,目前还是一骑绝尘,私有化部署难逢对手,支持基于HDFS Core的数据Balance,免受新增节点数据不均衡,需要手动均衡的痛点,Erasure Coding降低存储成本,HDFS可对接多种云端存储产品也是一些新的探索方向,我们看到HDFS往更加稳定、实用的方面发展。

HDP 3.0还移除一些臃肿的系统,常年无人使用,社区并未发展。终于是意识到做为一家开源软件公司,封装了一堆零散的组件,形成了一个平台产品,但是做为一个技术型产品,门槛是很高的,这是一个商业险话题,我们不讨论。HDP很长一段时间,都会是技术人员才能使用的软件产品,而国人早就基于这样的基础数据平台,开发数据中间件,支撑更加上层的应用,离客户更近,赚的盆满钵满,而对自己坚实的基础支撑系统,并未有任何的正向反馈,国人开源软件只痛,唏嘘一下。还是那句话,只论技术,不讨论。

HDP 3.0 删除了Apache Falcon,Apache Mahout,Apache Flume和Apache Hue等组件,并将Apache Slider功能融合到Apache YARN中。

关于,平台组件选型、维护与控制方面CDH显然做得更加自然一些,而HDP很长一段时间一直基于社区最新的组件打包,全都整个到一个平台,基本上都在Ambari、以及社区几个重要的组件上开发核心特性。由于组件众多,维护显然成本巨大,对于一些边缘性组件投入明显不足,精力分散,产品考虑不够完备,甚至放弃自己辛辛苦苦设计的软件,开源之路未顺利进行下去。

HDP 3.0.0 我看到了一些全新的变化,这是很好的开始,HDP产品化工作一直不如CDH,还是一个非常技术性的产品,并且对自身组件没有很强的把控能力,导致产品表现一直弱于CDH,长时间都在堆叠组件的道路上越走越远,产品组件也越来越臃肿,最明显的是HDP数据产品,覆盖的分析场景不够全面,导致很多安装了HDP产品的用户,还要手动维护一个即席分析组件,比如:Presto、Impala、MPPDB、Drill等。

HDP3.0.0及以前组件版本迭代史:

图片
图片

3.2、HDFS新特性

Erasure Coding降低存储成本,将存储开销降低50%,保证3副本的数据可靠性。

图片
图片

Namenode Federation,支持多Namespace,同一个集群,逻辑上隔离使用。

云存储支持,Google、S3、ADLS等存储连接器。

DataNode,内置磁盘数据均衡器。

3.3.YARN

3.3.1.YARN上的容器化服务

1.YARN支持运行Docker容器。

2.YARN上支持Docker化的Spark作业。

3.支持Slider功能,简化YARN的REST API和DNS发现。

3.3.2.增强的可靠性,可用性和可维护性

1.对于用户和开发人员更友好的YARN UI。

2.可扩展的Application Timeline Services2.0,支持基于流的应用程序性能管理(APM)。

3.3.Hive

1、LLAP融合Hive,提供强大工作负载,基于资源池,用户用户组分配资源。 2、默认情况下启用ACID功能,对数据更新的完全支持。 3、Hive Warehouse Connector,使得Spark更好的连接Hive。 4、物化视图,加快数据分析效率,提升查询速度。 5、JDBC存储连接器,Hive连接查询支持JDBC的数据源。

3.4.机器学习与深度学习

主要包括Spark/Zeppelin/Livy

1、支持Apache Spark 2.3.1 GA 2、支持在Docker容器中运行Spark作业 3、TensorFlow 1.8(仅限技术预览版)

3.5.流式处理引擎

主要包括Kafka和Storm

1.支持Kafka1.0.1

2.重大更新

KAFKA-6172 - TimeIndex中的Cache lastEntry以避免不必要的磁盘访问。

KAFKA-6175 - AbstractIndex会缓存索引文件以避免不必要的磁盘访问在resize()期间。

KAFKA-6258 - SSLTransportLayer会保持从socket读取,直到缓冲区已满或socket中没有更多数据。

3.支持Storm1.2.1,该Storm版本同时支持HDP3.0中其他更新组件包括Hadoop/HDFS3.0, HBase2.0和Hive3。

4.捕获producer和topic分区级别的指标,而不需要在客户端配置拦截器。这提供了一种非侵入性的方法来捕获producer的重要指标,而无需重构/修改现有的Kafka客户端。

3.6.操作型数据库

HBase

3.6.1.备份和恢复

HBase源生支持备份/恢复,包括全量和增量的备份/恢复支持。这是admin工具包中的一个重要工具,下一个版本将支持DLM,即UI。

3.6.2.Procedure V2

你现在可以使用Procedure V2(社区里也叫Proc-v2),这是一个更新的框架,用于在发生故障时执行多步骤的HBase管理操作。引入此功能是使用proc-v2来实现所有master操作,并在未来移除像hbck这种工具。使用proc-v2创建,修改和删除表。新的AssignmentManager等其他系统也会使用proc-v2实现。

3.6.3.Fully off-heap read/write path

当通过Put操作将数据写入HBase时,在将数据flush到HFile之前,cell对象不会进入JVM heap。这有助于减少RegionServer的总heap使用量,并且复制更少的数据,从而提高效率。

3.6.4.Use of Netty for RPC layer and Async API

将旧的Java NIO RPC服务替换为Netty RPC服务。Netty可以更容易的提供异步的Java客户端API。

3.6.5.In-memory compactions (Accordion)

Memstore中数据的定期重组可以减少整体I/O,即从HDFS写入和访问的数据。当我们在内存中保留更长时间的数据时,净性能会提高。

3.6.6.更好的依赖管理

HBase现在内部隐藏了通常不兼容的依赖,以防止出现问题。你也可以使用隐藏的客户端jars,这将减轻现有应用程序的负担。

3.6.7.重写Coprocessor和Observer API

对API进行了微小的更改,以消除模糊,误导和危险的调用。

Apache Phoenix的新特性

1.HBase2.0支持

2.Phoenix Query服务的Python驱动

这是引入到Apache Phoenix项目的社区驱动程序。它提供Python db 2.0 API实现。

3.查询日志

这是一个新的系统表“SYSTEM.LOG”,它捕获有关针对集群运行的查询的信息(客户端驱动的)。

4.列编码

这是HDP的新功能。你可以在HBase表中使用自定义数据编码方案来减少占用的空间。由于读取的数据较少,可以增加性能以及减少存储。稀疏表的性能增益为30%及以上。

5.Phoenix的Hive3.0支持

对于新的Hive版本提供新的phoenix-hive StorageHandler(技术预览)。

6.Spark 2.3支持Phoenix

对于新的Spark版本提供新的phoenix-spark驱动

7.支持GRANT和REVOKE命令

如果数据表或视图更改了访问权限,它会自动更改索引ACL。

8.引入对sampling tables的支持。

9.支持atomic update (ON DUPLICATE KEY)。

10.支持基于MR查询的snapshot扫描。

11.加强Local和Global的二级索引。

3.7.安全和治理

3.7.1.Apache Ranger

3.7.1.1.核心策略引擎和审计功能增强

1.可调度策略:策略生效日期,以支持有时间限制的授权策略和临时策略

2.覆盖策略以支持临时资源访问,覆盖特定用户的masking/row filtering

3.Auditor和KMS Auditor角色,支持对服务,策略,用户/组,审核和报告的只读访问。

4.在access audits UI中显示Hive查询。

5.在Ranger Admin UI中审计用户同步操作

6.用于分组和组织策略以及按标签filter/search的策略标签

7.Ranger Admin UI中显示的组中的用户成员身份

3.7.1.2.生态系统覆盖和增强

1.为Atlas通过细粒度授权实现Metadata安全性。

2.Atlas Tag Sync service性能提升。

3.Hive UDF执行和使用授权。

4.Hive工作负载管理授权。

5.通过Hive Information_schema支持entitlement mapping。

6.HDFS NameNode联邦支持

7.通过Solr 7支持,改进了索引基础架构。

8.Ranger插件兼容HDP3.0其他的组件包括Hive,HDFS,Storm,HBase,Kafka和YARN。

3.7.1.3.适用于企业

1.能够在Ranger安装期间为管理员帐户指定密码

2.所有受支持的DB flavor的合并db schema脚本

3.在安装HDP3.0时,默认安装Ranger和Atlas。

3.7.2.Apache Atlas

3.7.2.1.核心元数据功能

1.新的Glossary和Business Catalog

使业务用户能够捕获自然业务术语并提供业务词汇管理(术语分类,业务术语 - 资产关联,语义术语关系,层次结构)

2.Classification (tag)Propagation

通过对传播进行细粒度控制的分类(标签)传播到相关或衍生资产,改进监管链

3.Metadata Security

对data catalog中元数据的细粒度授权(对元数据操作的特定标签授权,数据资产/类型/管理操作授权,如元数据导入/导出)

4.有时间限制的分类或业务目录映射

3.7.2.2.生态系统覆盖和增强

1.新的Spark Hook(技术预览),用于在Atlas中捕获Spark SQL,Dataframe和模型元数据以及数据溯源。

2.新的HBase hook以捕获元数据和数据溯源。

3.通过Solr 7支持,改进了索引基础架构。

4.使用JanusGraph DB提供Tinkerpop 3标准兼容性的图形后端,提升可扩展性以及性能。

5.更新了用于HDP3.0生态系统兼容性的Atlas Hook(Hive,Storm / Kafka,Sqoop)

6.使用新的v2样式通知改进了元数据加载性能

7.通过大规模的DSL重构提高搜索性能。


4、HDP3.0.1版本,无新特性。

官网DOC:

https://docs.cloudera.com/HDPDocuments/HDP3/HDP-3.0.1/release-notes/content/new_features.html

图片
图片

5、HDP3.1.0:涉及Kafka、Ranger组件,主要针对Kafka组件的新特性。

Kafka Streams得到正式支持。Kafka Streams与Ranger和Schema Registry等平台服务完全集成,并支持安全/不安全的群集;其他还有在安全、性能、可靠性方面的提升。

官网DOC:

https://docs.cloudera.com/HDPDocuments/HDP3/HDP-3.1.0/release-notes/content/new_features.html

图片
图片

6、HDP3.1.4,只列举了常用的组件新特性

官网DOC:

https://docs.cloudera.com/HDPDocuments/HDP3/HDP-3.1.4/release-notes/content/hdp_relnotes.html

图片
图片

6.1、Hive

1.自动分区管理同步元数据和文件系统上的更改。

2.可以配置分区数据和元数据保留时间长度。

3.Hive Warehouse连接器现在验证针对Hive中的列的映射,以提醒用户输入错误。

4.将DataFrame写入Hive支持指定分区

5.用于HiveWarehouseSession API操作的新MergeBuilder接口支持合并表。

6.2、Ranger

1.支持时间限制的分类或业务目录映射。Ranger策略引擎识别标签的开始时间和结束时间,并根据标签的有效期限实施策略。

2.支持Safenet KeySecure加密平台,用于存储Ranger KMS的主密钥。

3.支持允许用户在Ranger中定义策略级别条件。

6.3、Spark

Spark Kafka源与模式注册表集成。


7、组件版本迭代

    将HDP2.6.3~HDP3.1.4组件版本迭代做了Excel梳理,有重大版本升级的用绿色标记,如下图:

图片
图片

8、总结

    综上,虽然HDP2.6.3到3.1.4相差6个版本之多,但主要的新特性基本出现在2.x到3.x过渡的3.0.0大版本中。其他小版本的新特性无变化或稍有变化,希望本篇能对HDP大版本过渡的同学有些帮助。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档