加入收藏 | 设为首页 | 会员中心 | 我要投稿 温州站长网 (https://www.0577zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

架构师进阶:从传统Hadoop大数据架构到云原生架构改造

发布时间:2022-11-17 14:35:07 所属栏目:大数据 来源:未知
导读: 以Hadoop为中心的大数据生态系统从2006年开源以来,一直是大部分公司构建大数据平台的选择,但这种传统选择随着人们深入地使用,出现越来越多的问题,比如:数据开发迭代速度不够快,集群资

以Hadoop为中心的大数据生态系统从2006年开源以来,一直是大部分公司构建大数据平台的选择,但这种传统选择随着人们深入地使用,出现越来越多的问题,比如:数据开发迭代速度不够快,集群资源利用效率过低、新的开发工具集成非常复杂。这些问题已经成为了困扰企业数字化转型加速迭代和升级的主要障碍。另一方面,从2014年开始,以Docker和Kubernetes(K8s)为代表的云原生技术蓬勃发展,云原生的社区和机构迅速壮大,到现在,Kubernetes已经成为企业搭建容器云平台的标配。

java大数据调度框架_java 大数据框架_大数据计算框架

那么,业界都在思考一个问题,高速发展的云原生技术能不能解决传统大数据平台的那些问题。答案是肯定的。

一、传统大数据平台的问题

数据时代,传统大数据平台遭遇四大窘迫问题

传统大数据平台,是指以Hadoop为中心的大数据生态技术。一个Hadoop集群包含HDFS分布式文件系统和以Yarn为调度系统的MapReduce计算框架。围绕Hadoop,有一系列的软件来帮助人们进行大数据的存储和计算,比如数据仓库Hive、计算框架Spark、实时消息队列Kafka等。

在大数据发展的初期,这样的大数据生态技术框架是能基本满足人们建设大数据平台的需要的。随着时代的发展,大数据技术使用逐步地深入,大数据开发需求变得越来越旺盛,人们对多租户环境下大数据开发的效率、大数据集群资源利用率、新(计算和存储)技术的集成速度提出了越来越高的要求,而传统大数据平台在面对这些需求时则显得有点束手无策,出现了无法克服的困难。我们仔细分析一下,就可以看到传统大数据平台的技术架构决定了依靠它本身的发展是无法克服这些困难的:

1、传统大数据平台难以实现资源的隔离。

多租户环境下的数据开发效率提升,需要以资源隔离的方式来保证租户之间的计算作业互相不影响,特别是不能出现某一个或几个租户独占集群资源的情况。但Hadoop系统本身的出发点就不是为了多租户环境而设计的,其目前的资源隔离实现也不完善。在最近的Hadoop版本中,在一定程度上实现了内存资源和文件资源的隔离,但是不够完整,而磁盘I/O和网络I/O的隔离还在社区讨论的过程中,短期内看不到解决的希望。

2、传统大数据平台难以集成新的计算和存储技术。

Hadoop系统在部署其他组件的时候,对这些组件与HDFS和Yarn的版本适配是有严格要求的。很多新的大数据组件是不适配老版本的Hadoop的,而升级Hadoop又会造成其他组件的失效。另外,部署新的组件还要考虑到Linux不同操作系统的兼容性所带来的额外复杂度。所以引入一个新的计算和存储组件的难度是非常高的,往往需要几天甚至是几周的时间。

3、Hadoop存算合一的耦合架构决定了它的资源利用率无法提高。

在一个Hadoop集群中,一个节点既是存储节点(datanode),也是计算节点。当存储资源不够的时候,增加节点可以进行存储扩容,但会造成计算资源的利用率下降;同样,当计算资源不够而进行扩容的时候,存储资源利用率就会下降。同时,因为对于Yarn的依赖,不使用Yarn调度的其它组件很难集成到Hadoop的计算框架中。所以Hadoop的这种耦合架构决定了它的资源利用率不可能很高。

4、Hadoop集群资源无法做到快速地弹性扩容和缩容。

弹性的扩容和缩容是提高集群资源利用率的有效方法。很遗憾,Hadoop的节点扩容和缩容流程,导致这个动作无法在很快的时间内完成,尤其是缩容过程,只有当一个datanode的所有数据块都在其他节点完成了备份以后,该节点才能被移出集群,而由于数据备份是以较小的传输率运行在后台,往往要持续几个小时以上。

总而言之,传统大数据平台因为其结构性的缺陷导致了多租户环境下数据开发效率低、集群资源利用率不高、以及集成新技术很复杂等问题,依靠Hadoop生态技术框架本身的发展是不可能解决这些问题的。

二、大数据平台的发展趋势

业界新趋势:大数据平台的云原生化

既然不能够依靠Hadoop生态技术本身的发展来解决传统大数据平台带来的难题,那么我们就应该把注意力放到当前最新的技术发展趋势之上,也就是以容器和Kubernetes为代表的云原生技术。云原生技术在2013年容器项目以及2014年Kubernetes项目正式发布以后,发展非常迅猛。现在,各大公有云厂商都支持K8s大数据计算框架,还有上百家技术公司在持续投入K8s的迭代和更新工作。成立于2015年的云原生计算基金会(CNCF),将K8s作为其托管的第一个项目,到目前该基金会已经托管了123个项目,近200个国家的16万开发者在为这些项目开发代码。更令人兴奋的是,CNCF的生态全景图目前包含了1000多个云原生技术产品,覆盖了数据库、消息级流处理、调度和任务编排、存储系统等10多个技术领域。

2021年应该是云原生大数据技术发展的里程碑,在这一年,有两个重大的技术进展被公布。一个是2021年3月,Apache宣布Spark 3.1正式支持了kubernetes,另外在2021年5月,Apache Kafka背后的商业公司Confluent 也发布了Confluent on Kuberneters,一个能私有发布的在K8s之上运行的Kafka生产集群系统。

这两个重要事件表明,大数据平台的云原生化已是大势所趋。按照这个趋势,Hadoop也会逐渐迁移到K8s上。从技术角度来分析,常说的Hadoop三架马车中,计算框架MapReduce会被更高效的Spark所取代,资源调度组件Yarn正在被K8s取代,最坚挺的HDFS也有了云原生的对标方案。这意味着直接在K8s上运行所有现在的大数据工作负载已经成为了可能。

三、未来发展方向

让云原生大数据平台借力 K8s 发挥更大价值

这两年以来,业界在大数据平台云原生化这个方向做了大量尝试,实现了大数据组件在K8s的稳定运行以及统一的数据安全机制,使数据应用开发平台能够实现完整的云原生化。接下来,仍需在多个方向继续探索,推动大数据平台更高效更稳定地运行在K8s之上。

(编辑:温州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!