火山引擎批式计算 Spark 版同样支持公共云、混合云及多云部署

互联网时代数据出现爆发式增长,数字化、实时化的趋势也明显加快。基于数据驱动的业务场景不断涌现,无一不在加速着大数据的繁荣发展。而随着云原生概念的兴起,大数据技术产品逐步迭代升级,云原生大数据技术产品开始引领产业变革的浪潮。

字节跳动大数据业务背景

从 2017 年起,字节跳动陆续推出多款广为人知的热门应用,如抖音、今日头条、西瓜视频、剪映、番茄小说、懂车帝等。应用形态从图文、点播,逐步走向更具实时化的直播、实时音视频。海量的数据规模、愈加复杂的实时场景使得各大业务对字节跳动底层运算能力的要求不断提高。

亿级用户背后的字节跳动云原生计算最佳实践

字节跳动业务的数据存储和日志规模每日已达到 EB 级别 实时推荐峰值每秒达到百万次

以抖音的实时推荐为例。系统需要从亿万级别的内容库中选出用户可能感兴趣的内容,运用复杂的模型对内容进行打分排序,再通过广告系统的处理,最后呈现给用户,整个过程需要在 300 毫秒内完成。这就对背后的计算能力提出了很高的要求,只有庞大的计算资源和极致的性能优化,才能达到这一业务需求。

云原生技术在字节跳动的敏捷迭代和创新的背后发挥了重要的作用,也正是这项关键的技术让字节跳动可以在 27 天内完成央视春晚红包项目的备战。字节跳动的大数据生态和云原生技术从早期的独立发展,到后来的大规模在离线混部, 再到今天的融合调度,大数据已经完全融入到云原生的生态中。

字节跳动云原生计算发展历程

流式计算引擎

字节跳动的流式计算引擎经历了由 Storm/JStorm 完全替换为 Flink 的演进。

在 2017 年以前,字节跳动一直在使用 Storm/JStorm 框架作为流式计算引擎。但随着业务的不断发展,Storm 不支持 Exactly Once、缺少 SQL 以及状态的支持、运维比较复杂、稳定性不高等缺点愈加凸显。

经过一系列调研,2017 年中,字节跳动基础架构团队正式开始尝试使用 Flink 作为流式计算引擎。

流式计算 Flink 引擎的高速发展

由于推荐系统和线上服务的大规模应用,字节跳动早期的技术体系主要是以 Python 为主。为了更好地实现生态对接,基础架构的工程师们在底层计算引擎上封装了一套 Python 的接口,各业务作业通过 Python 框架使用流式计算引擎。

得益于 Python 框架的存在,底层引擎从 JStorm 变更为 Flink 的工作得以在业务用户无感知的情况下完成,即用户仍然可以使用同样的 API 来实现自己的业务逻辑。在这个过程中还主要解决了两个问题:

  • 通过 SmartResources,防止资源空置和浪费。早期的流式计算引擎使用 YARN 作为调度系统,而从 JStorm 迁移而来的业务用户对设置 CPU 和 Memory 没有概念。为了保障作业的稳定运行,业务用户往往倾向于设置很大的资源量,这也就导致非常大的资源浪费。SmartResources 可以通过作业历史和当前的运行状况,自动调整 Container CPU 和内存的实际资源使用量,这在防止资源浪费上能够提供很大的收益。
  • 通过单点故障重启,解决大规模模型训练场景下的作业重启问题。Flink Exactly Once 的特性决定了任何一个 Worker 失败都会导致整个作业的重启。但在大规模模型训练场景下,重启时间对线上效果的影响将会被无限放大。在此背景下,基础架构的工程师们修改了 Flink DAG 的 Failover 实现,使得在特定的 Topology 下,单 Task 失败可以只重启单个 Task,从而实现了非常短的时间内的故障恢复。

到 2019 年,流式计算引擎已经完成了 JStorm 作业的 100%迁移。基于开源社区对 SQL 能力的增强,基础架构流式计算团队开始在公司内部大力推广 Flink SQL,Flink 的应用场景在字节内部得到不断拓展,特别是与直播、广告等业务团队一起共同探索流批一体应用场景。此外,流式计算团队开始在公司内部推动 Flink Batch 的落地,数据 Binlog 同步等业务场景的支持,目前每天大概有 10w+ Flink Batch 作业运行。

消息处理峰值 90 亿 QPS

亿级用户背后的字节跳动云原生计算最佳实践

截至目前,字节跳动业务流式作业数量已经达到 4 万个,其中 SQL 作业占 30%,随着 Flink SQL 在字节内部的推行,这一占比还将会继续扩大。而在这 4 万个作业中,已有 1.8 万个作业开启了 Checkpoint,高峰流量吞吐达到 600GB/s。在资源层面,目前业务平均使用的 Flink 资源已经超过 400 万核。

可以想象一下,每当今日头条、抖音等软件在夜晚迎来使用高峰时,字节跳动内部的实时计算引擎也随之进入高速运转。据统计,每晚 Flink 作业处理消息的 QPS 可达到 90 亿。

批式计算引擎

长期以来,字节跳动批式计算引擎 Spark 支持构建了公司内绝大部分的数据仓库。发展至今,Spark 作业数已达 90W,涵盖 SQL/Java/Scala/Python 多种语言。资源核数达 500 万 Core,在这其中包括了大量的大规模在离线混部资源。

在 Spark 引擎不断发展的过程中,字节批式计算团队的工程师们同样遇到了诸多挑战。

  • 如何提升 Shuffle 稳定性以保障 SLA

在大规模作业下,开源 ExternalShuffleService 的实现机制容易出现大量随机读导致的磁盘 IOPS 瓶颈, Shuffle Fetch 的请求积压等问题,从而致使运算过程中经常出现 Stage 重算甚至作业失败,继而引起资源使用的恶性循环,严重影响 SLA。对此,团队提出了 Cloud Shuffle Service 解决方案,解决了 ESS 机制上的一些缺陷,同时独立部署服务,更好地对接更多混部资源。

  • 如何降低运维和资源成本

伴随着业务需求的不断发展,公司内部批式计算作业数量也在不断增加,同时存在资源利用率低,工单数量大等问题。由此,团队开始考虑通过自动化方案 BatchBrain 来解决。BatchBrain 可提供异常作业(慢作业、失败作业)的自动诊断,以及推荐参数,从而达到降低成本的目的。

字节跳动业务验证下的行业标准解决方案

经过字节跳动的大规模业务验证,当前火山引擎正式推出流式计算 Flink 版批式计算 Spark 版两款云上产品。

流式计算 Flink 版

依托于字节跳动在业内最大规模实时计算集群实践。火山引擎流式计算 Flink 版基于火山引擎容器服务(VKE/VCI),提供 Serverless 极致弹性,是开箱即用的全托管流式计算引擎。在 100%兼容开源 Flink 的前提下,对产品功能也进行了企业级增强。

  • 开发效率提升。流式计算 Flink 版支持算子级别 Debug 输出、Queryable State、Temporal Table Function DDL,在开发效率上对开源版本 Flink 有显著提升。
  • 可靠性提升。流式计算 Flink 版针对单个 Task 进行 Checkpoint,提高了大并发下的 Checkpoint 成功率。单点任务恢复和节点黑名单机制功能,保障了对故障节点的快速响应,避免业务整体重启。

亿级用户背后的字节跳动云原生计算最佳实践

流式计算 Flink 版 – 产品功能架构

典型的多维实时场景支持

当前业界通常把 Flink 引擎定义为实时场景下的行业标准解决方案。同样,经过企业级功能增强后的火山引擎流式计算 Flink 版可以支持典型的多维实时场景。

  1. 实时 ETL 场景。提供丰富的内置 Connector,全面支持各种数据源及存储,企业级 SQL 能力高效构建实时数据处理平台;
  2. 实时监控场景。可提供状态管理等支持,内置 CEP 复杂事件处理模块,协助企业简化规则告警配置、降低监测平台维护成本;
  3. 实时数仓场景。支持海量数据实时处理和高并发实时入仓,协助企业建立数字化运营体系,为经营决策提供实时数据支持;
  4. 实时推荐场景。具备实时样本拼接能力,通过实时模型训练,创建实时增量模型,为客户提供更加精准和实时的推荐能力。

业内最大规模实时计算集群最佳实践

在字节跳动内部,抖音/头条/穿山甲等业务的广告推荐以及模型训练都深度使用了流式计算 Flink 版提供的流式计算引擎能力。

在流式训练方面,流式计算 Flink 版支持数据预处理、样本拼接、特征和稳定性指标的更新,为推荐效果的实时性和稳定性提供了有力保障。

在模型训练方面,流式计算 Flink 版支撑了推荐算法模型的核心训练任务,帮助模型及数据流快速迭代,提升模型稳定性,从而更好地协助业务团队助力广告主投放与媒体变现能力的增长。

值得一提的是,火山引擎流式计算 Flink 版支持云中立模式,支持公共云、混合云及多云部署,全面贴合企业上云策略。目前产品正在公测中,欢迎申请试用:

亿级用户背后的字节跳动云原生计算最佳实践

批式计算 Spark 版

火山引擎批式计算 Spark 版支持了今日头条、抖音的超大规模批计算,提供面向深度学习场景的深度优化。在 100%兼容 Apache Spark 的同时,实现企业级功能增强,配备火山引擎独有的 Cloud Shuffle Service 以保障 Spark 的作业性能和稳定性。批式计算 Spark 版提供租户级端到端安全隔离,具备基于火山引擎 VKE/VCI 的 Serverless 极致弹性扩展能力。

亿级用户背后的字节跳动云原生计算最佳实践

批式计算 Spark 版 – 产品功能架构

覆盖流批一体和深度学习场景

  • 流批一体数据处理场景。火山引擎批式处理 Spark 可提供 Streaming/Batch 流批一体的数据处理能力,同时提供结构化、半结构化数据支持,支持丰富的上下游数据源与数据存储。
  • 云原生数据湖场景。通过字节增强版 Iceberg 提供服务化的云原生数据湖平台:支持 Schema 校验、数据 Time-Travel、小文件自动优化、 ACID 事务性、Merge on Read 等功能。
  • 深度学习场景。提供火山引擎自研通用深度学习框架和 Feature Store 服务,高效支持大规模分布式深度学习训练。端到端大数据 AI 一体化服务,提供一站式大数据+AI 解决方案。

字节跳动批式计算应用的最佳实践

目前字节跳动内部数据仓库都是基于 Spark 来构建,包括今日头条、抖音等业务的超大规模批计算作业。火山引擎批式计算 Spark 承载了字节跳动内部大部分离线 ETL 的海量数据处理任务,帮助内部用户高效构建离线数仓;同时也给 BI 分析师等业务方提供基于 Spark 的 Ad-Hoc 查询服务。

在穿山甲等相关业务的机器学习场景下,特征工程是机器学习领域中重要一环。火山引擎 Spark 承担了特征提取、离线调研、训练预处理等相关工作。

火山引擎批式计算 Spark 版同样支持公共云、混合云及多云部署

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 1219982080@qq.com 举报,一经查实,本站将立刻删除。

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-11 18:47
下一篇 2022-06-11 18:50

相关推荐

  • 做短视频一定要做矩阵,做矩阵账号

    如果你在做短视频,你一定要做矩阵,做矩阵账号! 矩阵的意思就是,一套内容在多个平台多个账号去做分发,以此去获得更大更多的公域流量。 有很多人都说,一个号你都没整明白,做什么矩阵!他们的观点是先把一个号做起来,然后再去做矩阵账号,通过做起来的号来带动其他矩阵账号的流量。这是一种思路,我不太认可。大卫来了,我们在多个平台,开设了多个账号去做引流,效果就很不错。 …

    2022-06-02
    00
  • 星图优选如何解决难题(2022已更新:达人营销未来已来)

    很少有品牌再提“为什么要做达人营销?”这样的问题了。 从尝鲜可选项到营销必选项,达人营销的作用已越来越明显。凭借着对内容与用户的深刻理解、新鲜创意,以及更加垂直的粉丝粘性,达人营销在造势、种草、进一步转化等多元的营销场景里都有着独特的价值。 但正因为达人营销领域的极速发展,各种问题也在逐渐暴露。 比如头部达人非常稀缺,商单不易约;中腰部达人虽然数量多,但内容…

    2022-10-02
    00
  • 阿里巴巴东南亚旗舰电商平台lazada卖家注册开店

    Lazada是阿里巴巴东南亚旗舰电商平台,主要是以印尼、马来西亚、菲律宾以及泰国用户为目标,也非常适合国内商家拓展东南亚的业务,而且新商家90天免佣金的福利也刺激着商家入驻开店。那么Lazada该怎么注册开店呢? 注册前准备资料 与其他的跨境电商平台一样,Lazada也是不允许个人入驻的,个人商家可以搜索“网商云谷”,在线办理营业执照、注册公司,3-5个工作…

    2022-04-07
    00
  • 京东618电脑数码开门红预售排行榜

    数字化时代已经悄然来临,近年来,随着新潮数码产品的不断涌现,广大消费者并不能在短时间内了解到全部的数码好物。5月24日,京东618上线了电脑数码开门红预售排行榜,该榜每天根据销量实时更新,榜单囊括了网络办公、整机与教育硬件、智能数码、文教与外设等品类,那么在这其中又有那些必买的数码好物呢?让我们一起来看看预售首日的排行情况吧! 截至5月24日23:59,联想…

    2022-05-25
    00
  • 淘宝平台发短视频,逛逛和猜你喜欢如何选择2022实时更新

    电商知识 淘宝平台有两个入口可以发短视频,分别是逛逛和猜你喜欢,在两个入口中,你知道该如何选择吗? ● 如果你的短视频是对当前商品进行一个短平快的利益点挖掘,则更适合往猜你喜欢发;而如果你的短视频是更具人设的,用来推荐新品或者运营品牌口碑一类的,希望内容完播率较高,同时可以带来粘性互动,以实现用户转粉,这类视频更适合发在逛逛上。 总的来说,逛逛更像是种草,猜…

    2022-09-22
    00

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

联系我们

13515318674

在线咨询: QQ交谈

邮件:1219982080@qq.com