专栏
天翼云开发者社区

大数据平台发展趋势之存储、调度、计算和Serverless

2023-11-01 09:37:27 102阅读

    随着业务的发展,大数据在各行各业发挥越来越重要的价值,但大数据价值密度相对低,降低研发(平台研发国产化、应用开发迁移)、运维管理(部署、升级、监控、安全)和运行时资源(存储、计算、网络)成本是大数据平台一直的挑战。

   另一方面,平台的需求在不断膨胀,现有的架构和关键技术需要不断突破。

具体的技术路线、发展趋势从存储、调度、计算和平台的Serverless化展开。

存储

分布式存储系统的挑战

高性能的单机存储引擎

高性能的挑战:

  • 软件跟不上硬件的发展速度
  • 内存和存储硬件IO性能极速增加  CPU 频率和单线程性能增长不明显,而逻辑核心的数量迅速增长
  • Linux内核IO栈的效率

解决方案:

  • 异步线程架构:seastar框架等
    • Shared-Nothing:无锁,随核数线性扩展
    • Run-to-Completion:减少上下文切换
  • Modern IO APIs:SPDK/DPDK(用户态 复杂性高)、libaio(异步 灵活)、io_uring(易用 高性能)
  • 用户态文件系统(数据IO用户态),不止于Zero Copy
  • 硬件卸载:DPU,加解密,(解)压缩,校验,转发

统一多模底座

调度:混部work load

背景:

  • 成本高:随需求(在线微服务、离线计算、AI算力)的增长, 集群规模快速增长
  • 资源利用率低:因灾备服务、访问的波峰、难预估资源申请等问题,在线服务集群利用率<15%

解决方案:

  • 资源运营(运维负担重,无法根治)、动态超卖(超售策略不一定准确且可能导致挤兑风险)、动态扩缩(利用波峰波谷,服务动态扩缩,无法充分实现全天利用率提升)
  • 混部:将不同特征类型工作负载协同调度,充分利用负载之间的消峰填谷效应,让工作负载以更稳定、更高效、更低成本的方式去使用资源 

混部方案V1

统一到YARN

  • YARN的挣扎:调度能力的增强Placement Constraint、Apache Slider框架
  • 问题:架构老旧,扩展性差

YARN on K8s

  • 优势:
    • 集群规模大,满足batch作业性能需求
    • 任务迁移成本低
  • 问题:
    • 两套系统异步执行,使得在离线容器只能旁路管控,存在 race;且中间环节资源损耗过多
    • 对在离线负载的抽象简单,无法描述复杂 QoS 要求
    • 在离线元数据割裂,极致的优化困难,无法实现全局调度优化 

调度:统一到K8s的混部方案v2

混部基础:大数据云原生化

  • 增强K8s:Borg、CNCF Vocalno(podgroup、vcjob)、Apache Yunikorn、Kubewharf,解决原生调度只支持服务编排,性能吞吐差,缺少弹性quota、gang scheduling等功能的问题
  • 增强计算引擎:Spark/Flink Native on K8s、Remote Shuffle Service(Google Dataflow Shuffle、Apache Celeborn、Apache Uniffle、Baidu DCE、Meta Cosco、Uber Zeus、Firestorm、LinkedIn Magnet)
  • 存算分离+缓存加速:Juicefs、Alluxio、JindoFs、GooseFS、RapidFS

混部平台化:资源、管控、调度等多维度扩展

  • 双零侵入,超低接入成本:K8s、计算引擎零侵入
  • 抽象标准化:打通元数据,对复杂work load场景抽象QoS标准 
  • 管控同步化:容器启动时下发管控策略,避免在启动后异步修正资源调整,同时支持策略的自由扩展
  • 策略智能化:通过构建服务画像提前感知资源诉求,实现更智能的资源管控策略;
  • 运维自动化:一体化的交付,实现运维自动化和标准化 

计算引擎: Single-Engine

今年2场大战

  • Databricks VS Snowflake:2者的年度大会同时在6月份举行,2021年底互撕性能的延续
    • Databricks:deltalake + photon(spark)的数据湖支持数仓一体,TPC-DS性能创新纪录,指责sf改输入数据
    • Snowflake:数仓拥抱数据湖,类MPP架构,4XL 数据仓库有2倍性能
  • Apache Flink VS RisingWave:
    • RisingWave:Nexmark性能测试RisingWave比Flink快十倍,MPP架构
    • Flink:指责RW测试参数架构和修改query和数据

技术架构演进

  • 流批一体(Flink vs Spark),通用计算引擎vs MPP,Lambda vs Kappa,数据湖vs数仓,Single-Engine支持大数据流、批、OLAP + AI 

计算引擎:高性能

背景

  • NVME、RDMA等新硬件的应用,传统的大数据计算瓶颈已从IO转移到CPU计算
  • CPU SIMD指令集:Single Instruction Multiple Data,单指令处理多数据

业界现状

  • Databricks:闭源的Photon执行引擎,企业版核心竞争力
  • WeldIR Codegen模式
  • 鲲鹏ARM指令集上的部分优化

技术挑战

  • 多种CPU架构/指令集需要兼容、适配
  • 基于JVM的计算引擎无法直接利用SIMD
  • 数据全流程的列式存储、计算:内存管理、(反)序列化Shuffle等;涉及算子、函数多;Fallback机制
  • 开发难度大:Native Code且深入指令集编程/Debug难,性能瓶颈探查既要经验又需敏锐,稳定性挑战大 

大数据Serverless平台

需求 Simplicity:大数据Serverless化

方案:

传统EMR独立集群

    • 强隔离:独立ECS
    • 弹性伸缩:core + 伸缩计算节点
    • 运维难度大 组件多且管理复杂 集群数量膨胀

共享Hadoop大集群

    • 隔离弱:调度队列+CGroups
    • 只能限制功能:无UDF的SQL 

云原生Serverless平台

挑战
  • Backend as a Service
  • 统一运维保障
  • 统一资源池:引擎资源需求互补,高利用率,超卖高利润
  • 多租户:安全/性能强隔离
  • 解决爆炸半径大
  • 产品SaaS化,用户免运维,门槛低 

解决方案
  • 计算节点侧的隔离

  • Master侧隔离

  • 0
  • 0
  • 0
0 评论
0/1000
评论(0) 发表评论
阿德

阿德

3 篇文章 0 粉丝
关注

大数据平台发展趋势之存储、调度、计算和Serverless

2023-11-01 09:37:27 102阅读

    随着业务的发展,大数据在各行各业发挥越来越重要的价值,但大数据价值密度相对低,降低研发(平台研发国产化、应用开发迁移)、运维管理(部署、升级、监控、安全)和运行时资源(存储、计算、网络)成本是大数据平台一直的挑战。

   另一方面,平台的需求在不断膨胀,现有的架构和关键技术需要不断突破。

具体的技术路线、发展趋势从存储、调度、计算和平台的Serverless化展开。

存储

分布式存储系统的挑战

高性能的单机存储引擎

高性能的挑战:

  • 软件跟不上硬件的发展速度
  • 内存和存储硬件IO性能极速增加  CPU 频率和单线程性能增长不明显,而逻辑核心的数量迅速增长
  • Linux内核IO栈的效率

解决方案:

  • 异步线程架构:seastar框架等
    • Shared-Nothing:无锁,随核数线性扩展
    • Run-to-Completion:减少上下文切换
  • Modern IO APIs:SPDK/DPDK(用户态 复杂性高)、libaio(异步 灵活)、io_uring(易用 高性能)
  • 用户态文件系统(数据IO用户态),不止于Zero Copy
  • 硬件卸载:DPU,加解密,(解)压缩,校验,转发

统一多模底座

调度:混部work load

背景:

  • 成本高:随需求(在线微服务、离线计算、AI算力)的增长, 集群规模快速增长
  • 资源利用率低:因灾备服务、访问的波峰、难预估资源申请等问题,在线服务集群利用率<15%

解决方案:

  • 资源运营(运维负担重,无法根治)、动态超卖(超售策略不一定准确且可能导致挤兑风险)、动态扩缩(利用波峰波谷,服务动态扩缩,无法充分实现全天利用率提升)
  • 混部:将不同特征类型工作负载协同调度,充分利用负载之间的消峰填谷效应,让工作负载以更稳定、更高效、更低成本的方式去使用资源 

混部方案V1

统一到YARN

  • YARN的挣扎:调度能力的增强Placement Constraint、Apache Slider框架
  • 问题:架构老旧,扩展性差

YARN on K8s

  • 优势:
    • 集群规模大,满足batch作业性能需求
    • 任务迁移成本低
  • 问题:
    • 两套系统异步执行,使得在离线容器只能旁路管控,存在 race;且中间环节资源损耗过多
    • 对在离线负载的抽象简单,无法描述复杂 QoS 要求
    • 在离线元数据割裂,极致的优化困难,无法实现全局调度优化 

调度:统一到K8s的混部方案v2

混部基础:大数据云原生化

  • 增强K8s:Borg、CNCF Vocalno(podgroup、vcjob)、Apache Yunikorn、Kubewharf,解决原生调度只支持服务编排,性能吞吐差,缺少弹性quota、gang scheduling等功能的问题
  • 增强计算引擎:Spark/Flink Native on K8s、Remote Shuffle Service(Google Dataflow Shuffle、Apache Celeborn、Apache Uniffle、Baidu DCE、Meta Cosco、Uber Zeus、Firestorm、LinkedIn Magnet)
  • 存算分离+缓存加速:Juicefs、Alluxio、JindoFs、GooseFS、RapidFS

混部平台化:资源、管控、调度等多维度扩展

  • 双零侵入,超低接入成本:K8s、计算引擎零侵入
  • 抽象标准化:打通元数据,对复杂work load场景抽象QoS标准 
  • 管控同步化:容器启动时下发管控策略,避免在启动后异步修正资源调整,同时支持策略的自由扩展
  • 策略智能化:通过构建服务画像提前感知资源诉求,实现更智能的资源管控策略;
  • 运维自动化:一体化的交付,实现运维自动化和标准化 

计算引擎: Single-Engine

今年2场大战

  • Databricks VS Snowflake:2者的年度大会同时在6月份举行,2021年底互撕性能的延续
    • Databricks:deltalake + photon(spark)的数据湖支持数仓一体,TPC-DS性能创新纪录,指责sf改输入数据
    • Snowflake:数仓拥抱数据湖,类MPP架构,4XL 数据仓库有2倍性能
  • Apache Flink VS RisingWave:
    • RisingWave:Nexmark性能测试RisingWave比Flink快十倍,MPP架构
    • Flink:指责RW测试参数架构和修改query和数据

技术架构演进

  • 流批一体(Flink vs Spark),通用计算引擎vs MPP,Lambda vs Kappa,数据湖vs数仓,Single-Engine支持大数据流、批、OLAP + AI 

计算引擎:高性能

背景

  • NVME、RDMA等新硬件的应用,传统的大数据计算瓶颈已从IO转移到CPU计算
  • CPU SIMD指令集:Single Instruction Multiple Data,单指令处理多数据

业界现状

  • Databricks:闭源的Photon执行引擎,企业版核心竞争力
  • WeldIR Codegen模式
  • 鲲鹏ARM指令集上的部分优化

技术挑战

  • 多种CPU架构/指令集需要兼容、适配
  • 基于JVM的计算引擎无法直接利用SIMD
  • 数据全流程的列式存储、计算:内存管理、(反)序列化Shuffle等;涉及算子、函数多;Fallback机制
  • 开发难度大:Native Code且深入指令集编程/Debug难,性能瓶颈探查既要经验又需敏锐,稳定性挑战大 

大数据Serverless平台

需求 Simplicity:大数据Serverless化

方案:

传统EMR独立集群

    • 强隔离:独立ECS
    • 弹性伸缩:core + 伸缩计算节点
    • 运维难度大 组件多且管理复杂 集群数量膨胀

共享Hadoop大集群

    • 隔离弱:调度队列+CGroups
    • 只能限制功能:无UDF的SQL 

云原生Serverless平台

挑战
  • Backend as a Service
  • 统一运维保障
  • 统一资源池:引擎资源需求互补,高利用率,超卖高利润
  • 多租户:安全/性能强隔离
  • 解决爆炸半径大
  • 产品SaaS化,用户免运维,门槛低 

解决方案
  • 计算节点侧的隔离

  • Master侧隔离

文章来自专栏

云原生架构

3 篇文章 1 订阅
0 评论
0/1000
评论(0) 发表评论
  • 0
    点赞
  • 0
    收藏
  • 0
    评论