写点什么

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:005988

评论 2 条评论

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

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

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

GitHub开源:17M超轻量级中文OCR模型、支持NCNN推理

不脱发的程序猿

人工智能 GitHub 开源 OCR 4月日更

家务活中的python协程

行者AI

协程 python学习

前端DDD总结与思考

白玉兰开源

大前端 DDD

华云大咖说 | 华云数据与数科网维携手共建国产云生态

华云数据

https如何使用python+flask来实现

华为云开发者联盟

Python flask https ssl HTTP协议

一文搞定 Flink Job 的运行过程

shengjk1

flink flink源码 flink源码分析

简简单单才是真,初试 Svelte

LeanCloud

彻底搞懂ThreadLocal

千珏

Java 源码分析 多线程 ThreadLocal

肝了15000字性能调优系列专题(JVM、MySQL、Nginx and Tomcat),看不完先收藏

北游学Java

Java MySQL nginx tomcat JVM

阿里巴巴的“双11”高并发秒杀终极版教程!(Java语言设计)

Java架构追梦

Java 阿里巴巴 架构 面试 秒杀架构设计

什么是Selenium?使用Selenium进行自动化测试

码语者

DevOps selenium

Golang 对象池

escray

学习 极客时间 Go 语言 4月日更

【转载】图形化系统开发组件X-Series(一)——XrossUnit介绍

赫杰辉

智汇华云 | ArSDN打通软件定义数据中心的“任督二脉”

华云数据

软件测试——教育机构课程顾问常见黑话大全

程序员阿沐

程序员 软件测试 教育 机构 教育培训

聪明人的训练(二十二)

Changing Lin

4月日更

前端规范之路

白玉兰开源

大前端 开发规范

前端⼤规模构建演进实践

白玉兰开源

架构 大前端

Redis的适用场景简单剖析

大数据技术指南

redis 4月日更

【转载】提高系统开发效率的“银弹”——X-series可视化大规模应用开发工具集

赫杰辉

一入爬虫深似海,从此早睡是路人

Thrash

知识分享:SQL注入的流程和步骤

Thrash

sql

重磅来袭:Spring之RequestBody的使用姿势小结

学Java关注我

Java 编程 架构 技术 程序人生

4行指令解决pip下载Python第三方库太慢问题(pip更换国内下载源)

不脱发的程序猿

Python pip 4月日更 Python库安装

分布式锁之Redis实现

Sakura

4月日更

轻松带你学习java-agent

华为云开发者联盟

Java Trace Java虚拟机 java-agent 挂载

从源码分析 MySQL 死锁问题入门

比伯

Java 编程 程序员 架构 计算机

2020年12月的面试经历:美团4面+字节4面(均已拿offer),面试真题分享

Java架构师迁哥

0门槛成为“技术牛人”!星环科技线上分享课“星课堂”开播,快来报名,一探究竟

星环科技

人工智能 数据库 云计算 大数据 直播技术

GitHub惊现!JVM G1GC的算法+实现,90张图+33段代码,你的面试专属!

Java架构师迁哥

Redis为什么是单线程?高并发响应快?

Linux服务器开发

redis Linux服务器开发 网络io C++后端开发 单线程

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