基于 Kubernetes 的企业级大数据平台,EMR on ACK 技术初探
作者:容器服务团队
云上大数据的 Kubernetes 技术路线
当前,大数据与机器学习领域颇为关注存储与计算分离架构,逐渐向云原生演进。以Spark 为例,云下或自有服务器可以选择 Hadoop 调度支持 Spark,云上的 Spark 则会考虑如何充分享有公共云的弹性资源、运维管控和存储服务等,并且业界也涌现了不少 Spark on Kubernetes 的优秀实践。
大数据云原生化面临的挑战
存储和计算分离的架构,同时又带来挑战,例如:怎样构建以阿里云对象存储 OSS 为底座的 HDFS 文件系统?需要完全兼容现有的 HDFS,还要实现在性能对标 HDFS的同时降低成本;计算引擎 shuffle 数据存算分离,又要考虑如何解决 ACK 混合异构机型的支持问题,以及业界非常关注如何支持 Spark 动态资源。
引入 Kubernetes 之后, 如何调度优化性能瓶颈?性能对标 Yarn、实现多级队列管理。还有,如何借助 K8s,编排组织各种业务的波峰波谷,实现错峰调度?等等。
通过阿里云容器服务 ACK 运行开源大数据任务,将以集群为中心的视角切换成以作业为中心视角,还可以实现在线业务、AI、大数据统一接入 ACK 集群,错峰调度,离线在线混部,提升机器利用率。并且,实现了运维入口、运维工具链、监控体系的三重统一。此外,还支持多版本,如同时运行 Spark2.x 和 Spark 3.x 任务。
EMR on ACK 的架构与优势
12月,阿里云 EMR 2.0 正式发布,从平台体验、数据开发、资源形态、分析场景等方面实现全面创新。其中在资源形态侧,EMR 可以部署在阿里云容器服务 ACK 平台, 减少对底层集群资源的运维投入,以便于用户更加专注大数据任务本身。
EMR on ACK 为用户提供了全新的构建大数据平台的方式,用户可以将开源大数据服务部署在阿里云容器服务(ACK)上。利用 ACK 在服务部署和对高性能可伸缩的容器应用管理的能力优势,用户只需要专注在大数据作业本身。用户可以便捷地将 Spark、Presto、Flink 作业执行在 ACK 集群上,100%兼容开源,性能优于开源。
EMR on ACK 架构如下
- 轻量化管控,对接已有数据平台
- 通过数据开发集群/调度平台提交到不同的执行平台
- 错峰调度,根据业务高峰低峰策略调整
- 云原生数据湖架构,ACK 弹性扩缩容能力强
- ACK 管理异构机型集群,灵活性好
EMR on ACK 具备以下优势
-
Remote Shuffle Service 提供中间 shuffle 数据的存储计算分离方案
-
- 可以使计算节点无需本地盘和云盘
- 支持打开 Spark 动态资源功能,Spark-25299
终极方案
-
JindoFS 针对 OSS 存储提供湖加速解决方案
-
- Block 模式1TB TPCDS 场景下有15%以上的性能提升
-
调度层面支持 Scheduler Framework V2
-
- 调度性能比社区提升3x以上
- 提供多级队列管理
-
引擎能力增强
-
- 10TB TPCDS Benchmark 场景下,EMR Spark
比社区有3x性能提升 - Hudi、DeltaLake 比社区功能性能增强
- 10TB TPCDS Benchmark 场景下,EMR Spark
-
完整的错峰调度方案
国内知名广告营销服务商汇量科技已使用 EMR 产品4年。在业务快速增长的大好形势下,汇量科技面临越来越多的困扰:如数据来源复杂、数据量大、数据维度多、实时运营业务秒级数据新鲜度需求等业务需求;本次升级后,汇量科技在素材平台、热力引擎等业务的大数据平台搭建上,数据同步和及查询效率有数倍提升,系统稳定性显著提升,未再出现之前cpu、mem、io负载高等情况。
EMR on ACK:
点击此处移步阿里云 EMR 2.0 发布会,了解更多