当前位置:首页 > 报告详情

【字节跳动喻兆靖】高性能实时入湖在字节跳动的实践.pdf

上传人: s**** 编号:157157 2024-03-16 32页 3.49MB

1、高性能入湖在字节跳动的实践喻兆靖 字节跳动数据平台研发工程师PART ONELAS 介绍PART THREE生产落地与优化PART TWO 实时数仓场景PART FOUR未来规划LAS 介绍01ByteDanceByteDance流批一体架构批流一体存储一份存储同时支持流式的增量读写以及批量读写支持高效的 OLAP 查询支持高效的维表 Join湖仓分析引擎湖仓分析引擎湖仓开发工具湖仓开发工具SparkSparkPrestoPresto统一元数据统一元数据统一目录统一目录权限管控权限管控元数据发现元数据发现湖仓存储湖仓存储内置存储内置存储其他数据源TOSRDSEMRMQ分布式文件存储批流一体存储

2、引擎批流一体存储引擎弹性资源弹性资源VKE/VCIVKE/VCI湖湖仓仓存存储储湖湖仓仓分分析析引引擎擎队列管队列管理理数据数据管管理理查询分查询分析析作业管作业管理理权限管权限管理理生态连生态连接接湖湖仓仓分分析析平平台台ByteDance统一元数据ACID 支持企业级权限管控极致弹性引擎极致优化日志计算场景长周期计算场景全量计算场景ByteDance经典实时数仓架构实时存储不统一实时离线存储能够统一冷启动流程复杂且耗时回溯中间数据不可查ByteDance经典实时数仓架构流式低延迟写入/消费 RPS一致性语义批式分区并发更新Hive 表读写吞吐ByteDance批流一体存储-数据湖多引擎支持

3、落地场景0202ByteDance流式数据计算场景ByteDance多维分析场景ByteDance链路加速场景ByteDance现有方案存在的问题存储冗余数据计算链路长下游 OLAP 计算耗时长,且不稳定(核心问题是大数据量的 Shuffle)业务诉求ByteDance时效性:天级=小时级 场景诉求:提前就绪时间加速下游 去重、Join 等 OLAP 计算节省存储和计算资源场景特点:数据量大(一天千亿数据,存储百 TB 级别)有大字段且大小不均匀下游核心链路多基于 HUDI 的数据湖方案ByteDance时效性:天级=小时级 可支持分钟级近实时查询线上优势:入湖过程中直接按主键去重,省略了后续

4、流程中的去重操作,提前就绪时间按照主键进行了分桶,后续查询时可以使用 local join 进行 shuffle 消除,节省任务时间生产落地与优化03ByteDanceHudi Flink 入湖的实现方式ByteDancerow data to hoodie:负责将 table 的数据结构转成 HoodieRecordbucket assigner:负责新的文件 bucket(file group)分配write task:负责将数据写入文件存储coordinator:负责写 trasaction 的发起和 commitcleaner:负责数据清理 Flink 入湖落地问题ByteDance写

5、入性能差,能支持的 QPS 低写入资源占用较大,GC 严重写入稳定性差,Lag 毛刺严重,数据高峰期难以追平 LagCompaction 性能差,且资源占用较大不支持归档(流转批),后续批任务无法调度写入性能差,能支持的 QPS 低将 RowData 转为 HoodieRecord,带来了额外的序列化与反序列化的消耗多次 shuffle 导致数据频繁跨网络传输,导致性能较差在 checkpoint 的时候会阻塞式的 flush 所有数据到 HDFS,并且是阻塞式的,所以会出现长尾问题问题分析ByteDance写入稳定性差,Lag 毛刺严重,数据高峰期难以追平 Lag在 checkpoint 的

6、时候会阻塞式的 flush 所有数据到 HDFS,并且是阻塞式的,所以会出现长尾问题使用 append log file 的方式写入,追加写 Log 文件存在较多 HDFS 侧问题,维护成本较高(lease 超时问题,文件未关闭重新写入,客户端调用 close 但 NN 未响应,等等)问题分析ByteDance写入资源占用较大,GC 严重Write Function 和 HoodieAppendHandler 内部各有一层缓存,导致任务的内存占用比较大,GC 也比较严重Compaction 性能差,且资源占用较大由于写入的是 log file,所以为了保证读取效率还需要频繁进行 compact

word格式文档无特别注明外均可编辑修改,预览文件经过压缩,下载原文更清晰!
三个皮匠报告文库所有资源均是客户上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作商用。
本文详细介绍了字节跳动在数据存储和处理方面的高性能实践,主要围绕湖仓一体架构、实时数仓场景、生产落地与优化、以及未来规划展开。字节跳动采用一份存储同时支持流式增量读写和批量读写的湖仓一体存储方案,支持高效的 OLAP 查询和维表 Join。在实时数仓场景中,通过湖仓分析引擎和开发工具,实现了低延迟的流式数据计算和高吞吐量的批式数据处理。 在生产落地与优化部分,文章指出字节跳动面临的挑战,如存储冗余、数据计算链路长、下游 OLAP 计算耗时长等问题,并提出了相应的解决方案。例如,通过优化 Kafka 到 Hudi 的数据入湖流程,减少任务链路,实现归档功能,以及引入非阻塞式写入来提高数据处理效率。 未来规划方面,字节跳动计划扩展 Clustering 功能,分为全量合并和部分合并两种策略,并实现非阻塞式 Clustering Table Management Service,以进一步优化数据存储和处理性能。总的来说,字节跳动通过不断的技术创新和优化,实现了数据存储和处理的高性能和高效率。
"字节跳动如何实现高性能入湖?" "Flink入湖面临的问题与解决方案是什么?" "字节跳动在实时数仓场景下的实践有哪些?"
客服
商务合作
小程序
服务号
折叠