查看原文
其他

新一代云原生数据平台的几个关键思考

ruby ruby的数据漫谈
2024-09-27
摘要:本文介绍传统大数据平台、普通云原生大数据平台的技术架构和问题,并着重探讨新一代云原生大数据平台的优势和价值。通过对技术架构的改进和创新,新一代云原生数据平台除了拥有普通云原生大数据平台的优势,主要包括:多租户(资源隔离)、兼容性高、资源利用率高、弹性伸缩、容器化部署。更具有:轻量级、技术架构简单、存算分离、易运维、高性能的优势,使得新一代云原生数据平台成为企业数据处理和分析的首选解决方案。对于关注大数据技术发展和数据处理效率的读者来说,本文将为您提供深入了解新一代云原生大数据平台的视角和思考。


  • 传统大数据平台的困境‍‍‍‍‍‍‍‍‍‍‍‍‍‍

  • 普通云原生大数据平台的技术架构和优势‍

  • 新一代的云原生大数据平台的技术架构和优势‍‍‍‍‍‍‍‍



01

传统大数据平台的困境



传统的大数据平台通常是使用开源的Hadoop集群搭建的,这些集群可以运行在物理机或虚拟机上。Hadoop是一个分布式计算框架,能够处理和存储大规模数据,并提供了MapReduce编程模型来进行数据处理和分析。
传统大数据平台的技术架构通常是基于Hadoop生态系统进行构建的,包括HDFS(Hadoop分布式文件系统)用于存储数据,YARN(Yet Another Resource Negotiator)用于资源管理,以及Hive、HBase、Spark等工具和框架用于数据处理和查询。然而,传统大数据平台也存在一些问题。
问题一:传统大数据平台不支持资源隔离和多租户的应用场景,多租户环境下可以让数据开发效率得以提升,资源隔离可以保障不同的租户之间计算作业相互不受影响,而hadoop集群并不是为多租户的环境的而设计的。
Hadoop集群本身缺乏对多租户的细粒度权限管理和资源分配控制。在传统的Hadoop集群中,所有的作业都共享相同的资源池,无法从根本上实现对不同租户之间计算作业的资源隔离。这意味着如果一个租户的作业消耗大量资源,就有可能影响其他租户的作业性能,导致整个集群的性能下降。
其次,Hadoop集群缺乏灵活的资源调度和管理机制。它使用了基于容量的调度器,无法根据实际需求动态调整不同租户的资源分配。这意味着无法根据不同租户的需求进行智能的资源调度,难以实现对计算作业的优先级和资源分配进行细粒度控制。
此外,Hadoop集群的资源利用率相对较低。由于每个作业都需要在整个集群上进行计算,导致每个作业可能需要使用大量的资源,而这些资源在整个作业运行周期内无法被其他作业利用。因此,Hadoop集群的资源利用率较低,难以充分发挥硬件资源的性能。
问题二:兼容性差,传统的大数据平台通常是由多个组件构成,例如Hadoop生态系统,其中包括HDFS(分布式文件系统)和YARN(资源调度器)。这些组件相互依赖,协同工作,以提供分布式存储和计算功能。然而,当引入新的计算和存储技术时,可能会面临一些挑战。

首先,新的组件往往只支持特定的版本。如果你想引入一个新的组件,但它不兼容你当前使用的Hadoop版本,你就不得不升级Hadoop。然而,升级Hadoop可能会导致其他组件和应用程序失效,因为它们可能依赖于特定版本的Hadoop。这就造成了整个平台的兼容性问题,增加了运维的复杂度。

其次,由于传统的大数据平台通常是静态的,即在部署时需要事先确定好各个组件的版本和配置,这限制了平台的灵活性和可扩展性。当你希望引入一个新的计算或存储组件时,可能需要重新设计技术架构、重新部署和迁移大量的数据,这是非常耗时和复杂的过程。

总体而言,这些问题使得传统的大数据平台在集成新的计算和存储技术时面临挑战,增加了运维的复杂度,限制了平台的灵活性和可扩展性。

问题三:Hadoop集群的存算紧耦合架构导致了资源利用率的低下。这是因为在Hadoop集群中,存储和计算是紧密耦合在一起的,即数据存储在HDFS中,计算节点通过读取和处理HDFS中的数据来执行任务。

当扩容计算节点时,存储利用率会降低。这是因为Hadoop集群的计算节点通常是无状态的,它们需要访问HDFS上的数据进行计算,而不存储数据。因此,增加计算节点并不会提高HDFS上存储的利用率。相反,可能会导致存储空间的浪费,因为数据被复制到多个计算节点上。
另一方面,当扩容存储节点时,计算利用率会降低。这是因为Hadoop的计算节点通常是独立于存储节点的,它们通过网络来访问HDFS上的数据进行计算。当数据存储在新的存储节点上时,计算节点需要通过网络来获取数据,这会引入额外的延迟和带宽消耗。同时,计算节点可能无法充分利用新增的存储容量,因为数据分布可能不是完全均衡的。
因此,存算紧耦合的架构特点导致了资源利用率低下。增加计算节点无法提高存储利用率,而增加存储节点则无法提高计算利用率。这种情况下,很难实现资源的有效利用和平衡。
问题四:无法弹性扩容和缩容,运维极其复杂。Hadoop是一个分布式计算框架,它的集群资源扩容和缩容确实存在一些问题。具体来说,扩容和缩容的过程比较复杂,涉及到以下几个方面的步骤:

1、硬件准备:扩容和缩容需要新节点的硬件设备就绪,包括服务器、存储设备等。

2、软件安装配置:新节点需要安装和配置Hadoop的相关软件,这包括操作系统、Hadoop组件等。

3、网络配置:新节点需要加入到Hadoop集群的网络拓扑中,并与其他节点进行通信。

4、数据同步:扩容和缩容时,需要将数据从现有节点迁移到新节点上或从新节点迁移到其他节点上,这个过程可能需要较长时间,特别是数据量较大时。

5、重平衡:扩容和缩容后,集群需要重新平衡数据和任务的分布,以保持负载均衡。

以上几个步骤中,软件安装配置、网络配置和数据同步都是比较耗时的操作,而且这些步骤都需要人工干预,所以整个扩容和缩容的过程比较繁琐且需要较长时间。

因此,传统的Hadoop集群的扩容和缩容过程一般需要花费较长的时间,可能需要几天甚至一周的时间完成。这就导致了无法快速响应业务需求,限制了资源的弹性使用和利用率的提高。



02

普通云原生大数据平台的技术架构和优势


基于以上分析的困难,大部分数据平台的厂家基于k8s组件的研发,将大数据平台容器化、标准化后形成了基于云原生的大数据平台用于解决以上问题,那么他们的架构主要有哪些优势了?


云原生大数据平台,将hadoop组件容器化,并且利用k8s的弹性伸缩能力,快速扩容和缩容,利用k8s的容器化能力实现多租户,资源隔离的能力。主要的优势体现在如下几个方面:


一、提升集群资源使用率

传统大数据平台对于实时分析和离线分析作业是分开部署,各自采用独立的调度系统,资源利用率低,而利用k8s可以将所有的资源形成一个共享的资源池,由统一的调度系统分配资源,提高资源的利用率。‍‍


二、容器化大数据组件,降低了组件集成、升级,扩容、难度。

传统大数据平台的运维工程师需要了解和掌握10-20种大数据组件,才能完成大数据平台的各种运维操作,且都是需要手动操作,一方面这种运维大佬薪资很高,而且难以招到,另外每次扩容升级都需要几天到一周的时间。‍‍‍‍‍‍‍

云原生的大数据平台在k8s和可观测性运维功能的加持下,降低难度和节省时间,提升了运维的效率,通过标准化的容器化的大数据组件,升级和扩容一般几个小时就可以完成。‍

三、减少了大数据平台的运维成本。

一个拥有两百个节点的传统大数据平台往往需要5~6个全职的大数据运维工程师进行运维,而云原生大数据平台,在这样的一个集群规模,需要1-2个懂k8s和稍微懂大数据组件的运维工程师既可以完成。


目前国内市面上大多数的云原生大数据平台都是基于这种架构,这里我就不多详细说明了,这种架构在hadoop组件的基础上利用k8s的组件的能力,解决了传统大数据平台的一些问题,例如解决多租户问题、解决兼容性问题、降低了运维难度和成本。但是还是存在一定的问题,

一、存算耦合,虽然资源利用率提升了,但是任然解决的不彻底,需要从架构上调整成为存算分离的架构,才能提升更多的资源利用率。‍‍‍‍‍‍

二、架构复杂,开发成本高,大数据团队的开发人员/架构师需要掌握10-20个组件的能力才能比较好的完成开发,因为最终开发完成之后,代码上线出问题了,解决这些问题,需要懂这些组件的人通过定位问题解决,通常一个问题可能要2-3天解决。‍‍‍‍‍‍

三、服务器利用率低,因为hadoop集群本身的特性导致一个完整的大数据平台需要比较多的组件依赖,也导致需要比较多的服务器才能完成部署一个大数据集群。




03

新一代云原生大数据平台的技术架构和优势



普通大数据平台的问题,在新一代的大数据平台中如何得到解决,主要体现在,采用轻量级的计算引擎,以及存算分离的架构,架构简单,降低了大数据团队的开发成本。


新一代云原生大数据平台,将spl/doris/flink等组件容器化,并且利用k8s的弹性伸缩能力,快速扩容和缩容,另外存储和计算分离的架构,进一步提升集群中计算资源和存储资源的利用率。


一、架构简洁,无依赖组件
新一代的云原生大数据平台,使用SPL/Doris/flink 三个组件及可以完成所大数据平台所有的应用场景,包括离线跑批、交互查询、实时处理等。且三个计算引擎都无其它依赖组件。不需要掌握额外的其它的大数据组件的知识。
二、存算分离、提升集群资源利用率
SPL是一个轻量级的高性能的计算引擎,数据存在组表文件中,是一个存算分离的架构‍‍‍‍‍‍
Doris的架构也是极其简单,主要包含FE,BE节点,今年4月份有望出新的版本,实现存算分离。‍‍‍‍‍‍‍‍‍
Flink组件,相比大家会相对比较熟,是一个流式计算引擎,也是存算分离的架构。
通过统一的精细化的调度系统,设置任务优先级,以及自动监控集群的负载情况,优化资源利用率,提升计算资源和存储资源利用率
三、组件单一,降低大数据开发成本和运维成本。
三个单一的组件相比于hadoop集群的10-20个组件,学习成本降低很多。另外,通过加强可观测行运维服务等功能,以及低代码的数据开发功能,进一步降低运维和大数据开发难度,让普通新手都可以上手进行大数据开发任务。‍‍

以上是我对新一代大数据平台思考和探索,欢迎大家加微信探讨。

欢迎加入【数据行业交流群】社群,长按以下二维码加入专业微信群,商务合作加微信备注商务合作




往期历史热门文章:

基于DataOps的数据开发治理:实现数据流程的自动化和规范化

数据平台:湖仓一体、流批一体、存算分离的核心问题及原因解析

数据治理体系该怎么建设?

实时数仓&流批一体技术发展趋势

数据仓库、数据中台、大数据平台的关系?

数字化转型如何促进业务的发展

数据中台中的核心概念解析

数据治理中的数据标准的作用?

全面数字化转型:打造全新营销模式



修改于
继续滑动看下一个
ruby的数据漫谈
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存