写点什么

Big Data on Kubernetes : 云原生大数据平台将如何演变

  • 2022-06-08
  • 本文字数:2228 字

    阅读完需:约 7 分钟

Big Data on Kubernetes : 云原生大数据平台将如何演变

去年,在大数据领域发生了两个比较有代表性的事件:Apaceh Spark 和 Kafka 先后开始正式支持 Kubernetes,两者间隔也就两个月。与此同时,Spark、Kubernetes(K8s) 和云原生存储也在逐渐取代 Hadoop 的“三架马车”:MapReduce 、YARN 和 HDFS。

 

“以前所有大数据组件的公分母是 Hadoop,现在已经变成 K8s 了。”智领云联合创始人兼 CEO 彭锋说道,“大数据平台的云原生化,是一个确定的趋势。”

 

在这一背景下,智领云发布了国内首个基于纯 K8s 平台运行的在线数据工程开发平台 BDOS Online,该平台提供了数据应用开发和运营所必需的组件,同时支持公有云及私有云发布。


改造思路

 

根据彭锋介绍,该平台的出发点是要让用户从之前数月周期、百万投入的大数据平台建设中抽离出来,可以直接使用大数据平台。

 

“以前使用大数据平台,需要采购至少十几台服务器,还要招人安装组件、建立开发和运维平台,购买各种各样的 BI 工具等。整个大数据平台的建设和使用成本,入门门槛和角色风险都比较高。我们希望通过云原生数据应用开发方式,用户开个账号就可以在数日内看到效果。”

 

实际上,业内都开始对大数据平台进行云原生改造,但各家思路并不相同。总体来看,国内用户更希望能够从现有架构平稳地迁移,厂商也更谨慎些。因此,目前厂商对大数据平台的云原生改造基本还在内部尝试阶段,没有成型的产品出来。

 

比如,某些厂商是基于自己的调度系统和分布式计算体系开发的大数据平台,虽然现在也在做 K8s 改造,把一部分调度工作移到了 K8s,但是绝大部分组件还是基于原来的大数据平台体系运行,并不是真正的实现了云原生架构下的数据平台。

 

相对来说,国外企业的改造会更加激进些。像 Snowflake 和 Databricks 基本已经放弃 Hadoop,以 K8s 为调度和运营平台,实现存算分离,直接使用云原生的存储来建设大数据体系,用户在线上可以直接运行应用,是更彻底、更纯粹的云原生。

 

智领云的思路与国外企业接近,即将全部组件做 K8s 改造,也将服务搬到了线上。为了兼顾对公有云和私有云的支持,智领云的底层云平台是松耦合的,同时将需要的通用功能抽象出来,而非直接对应 K8s 的 API。这样的架构允许系统灵活对接类似于阿里云的 ACK 服务,或者是自主发布的 K8s 集群。另外,虽然主要对标国内主流云服务商的 K8s 版本,但也将不断适配最新的 K8s 社区版。

 

智领云的底层之前使用的是 Mesos。由于 Mesos 和 K8s 皆来自 Google 的 Borg,在迁移到了 K8s 后,发布和管理流程并没有很大的变化。

 

迁移到 K8s 带来的最大好处就是有了更简单的 NameSpace 管理,简化了资源隔离或者用户隔离方面等很多工作。“原来 Mesos 的 NameSpace 管理没有那么完善,因为是二级调度,所以它的资源分配相对复杂,不如 K8s 的简单。”

 

存储方面,在私有发布中智领云目前采用的是 MinIO 和 HDFS。整体看,无论是开源还是闭源的云原生存储方案,现在对于大数据系统的支持都还不太成熟。即使是 Snowflake、Databricks 的很多解决方案也是使用了云厂商的存储。智领云在阿里云上使用的也是阿里云提供的 NFS 和 OSS。

 

“云原生的存储和大数据的存储之间最大的区别在于,云原生的存储主要是为了有状态容器的迁移和发布设计。比如当某个容器卸载后,其他地方仍可以启动原本的存储,无需再将数据复制。这比较适合无状态或简单的有状态服务,同时存算分离比较容易实现。将云原生的存储体系应用到大数据系统中,还是要解决一些 data locality 之类的优化问题。”彭锋介绍道。

 

运维方面,智领云正在致力于将整个运维“Operator 化”。所谓 Operator ,即允许大家将日常的安装、发布、运维,到扩容、降容、升级等所有操作代码化。“一旦完成,整个大数据运维将更加自动化。”

 

难在哪里?

 

不过,彭锋坦言,目前大数据平台的云原生改造并非易事,改造挑战主要体现在以下三个方面。

 

 第一,K8s 体系和原来大数据体系之间存在架构上的冲突。原来的大数据体系拥有自己的一套分布式管理和内部通讯机制,这与现在的 K8s 原生技术栈有很多冲突。例如,YARN 对于任务作业的调度和 K8s 本身的调度并不匹配,将 Hadoop 的 Kerberos 管理和 K8s 的 Secret 管理结合也需要做很多集成工作。

 

另外,两个体系所倡导的理念也不一样。比如 K8s 提倡的是存算分离,但是大数据讲究的是数据存在哪里计算就在哪里。这些矛盾都增加了融合难度。

 

因此可以看到,现在 Hive、Spark 只能支持某一版本的 K8s,而 Kafka 对 K8s 的支持现在并没有开源,这些都说明大数据组件对 K8s 的支持还处于跑通的早期阶段。为解决版本差异问题,智领云需要更改 Hive、Spark、Kafka 等源代码来完成改造。

 

第二,安装运维等流程改造上的冲突。现在 K8s 所有系统的安装、容错、运维、扩缩容以及更新等,全部以类似于 Operator 的方式自动运行,但大数据组件的安装运维方式是比较原始的手动管理方式。因此,要把大数据组件的安装运维方式全部换成 K8s 理念的,需要做很多工作。

 

第三,如何无缝迁移并对现有业务不造成影响。现有大数据组件运行了很多以前的业务应用,比如 ETL 数据分析、数据仓建设等,很多是用基于 HiveSQL 的程序开发的,为了使用 K8s 而把以前的业务应用全部重新写一遍是不现实的,所以我们需要考虑到现有 workload 的无缝迁移。

 

彭锋表示,大数据平台的云原生改造才刚刚开始。K8s 还有不少可以提升的地方,其在生态系统、业务系统上的采用正在逐渐提高,但要形成行业共识还需要一些时间。

 

“但可以肯定的是,K8s 是趋势。这种改造,不管是对以 SaaS 方式服务、云上提供服务,还是企业内部提供云原生数据开发能力来说,都非常重要。”彭锋说道。

 

2022-06-08 15:006101

评论 2 条评论

发布
用户头像
这里应该是无状态容器

云原生的存储主要是为了有状态容器的迁移和发布设计。

2022-11-26 12:01 · 北京
回复
用户头像
k8s还是有很多问题要解决
2022-06-09 20:07
回复
没有更多了
发现更多内容

一个基于PoS共识算法的区块链实例解析(升级版)

恒生LIGHT云社区

区块链 共识算法 PoS

基于javaweb,springboot银行管理系统

叫练

银行 毕业设计 计算机毕业设计

“5G+区块链”护航新生儿转诊“生命通道”

CECBC

城墙上的“云镜派”,如何守护云上资产安全?

脑极体

react源码解析20.总结&第一章的面试题解答

buchila11

React

Web3:创作者经济的黄金时代

CECBC

大咖眼中的AI开源 | 张建:图神经网络和DGL的实际应用

亚马逊云科技 (Amazon Web Services)

网络

1月月更|推荐学Java——第一个MyBatis程序

逆锋起笔

Java mybatis SSM框架 MyBatis标签 mybatis配置

如何优雅的遍历Mycat分库表

编程江湖

mycat

用复杂的方式学会数组(Python实现动态数组)

宇宙之一粟

Python 数据结构 数组 1月月更

Hibernate 如何生成 JPA 的 Metamodel

HoneyMoose

面试突击15:说一下HashMap底层实现?及元素添加流程?

王磊

Hoo虎符研究院 | 币海寻珠——波卡平行链Moonbeam生态一览

区块链前沿News

虎符交易所 波卡

聊聊Netty那些事儿之从内核角度看IO模型

bin的技术小屋

Netty nio Linux Kenel Linux网络编程 #java

sql审核-避免离线sql导致的db集群故障

名白

sql db sql检测 SQL审核 SQL审批

政法委社会治安防控平台建设,重点人员联防联控系统开发

a13823115807

架构师实战营3期毕业设计

小饭🍎

站在面试官角度,看求职与内卷

程序人生

react源码解析19.手写迷你版react

buchila11

React

ReactNative进阶(十四):初探 Gradle

No Silver Bullet

Gradle React Native 1月月更

TDengine在中节能风力发电运维系统中的落地实践

TDengine

数据库 大数据 tdengine 物联网

multi-key索引和wildCard索引场景比较

MongoDB中文社区

mongodb

设计电商秒杀系统

奔奔

元宇宙,以区块链为核心的Web3.0数字生态

CECBC

Avaya大中华区CTO李农:阿里云计算巢加快Avaya应用云部署

阿里云弹性计算

弹性计算 年度峰会 计算巢

开源走向世界(下):从数据库技术演进看开源力量丨BDTC 2021

PingCAP

Amazon EC2 串行控制台——化繁为简,高效解决网络问题

亚马逊云科技 (Amazon Web Services)

网络

Magic UI四子围城,2022折叠屏灵魂觉醒

脑极体

Java 常用类大讲解!3️⃣(手写 API、源码必备)

XiaoLin_Java

Java 数组 1月月更

为什么要把系统拆分成分布式的?为啥要用dubbo?

JavaEdge

1月月更

IntelliJ IDEA 的 Metamodel 配置

HoneyMoose

Big Data on Kubernetes : 云原生大数据平台将如何演变_大数据_褚杏娟_InfoQ精选文章