B站实时流计算实践:Flink与Spark的应用与挑战
需积分: 9 144 浏览量
更新于2024-07-16
收藏 4.18MB PPTX 举报
"本次分享主要介绍了Flink在哔哩哔哩(B站)的实际应用情况,包括遇到的问题、解决方案以及构建一站式实时流计算平台的过程。分享者为B站的资深开发工程师,也是平台技术负责人郑志升。内容涵盖了Flink在B站的应用背景、存在的问题、需求多样性以及对监控告警体系的改进。"
正文:
Flink作为一款强大的开源流处理框架,在B站的实践中扮演了重要角色。然而,实际应用中也面临一些挑战,例如开发门槛高、作业运行质量差、监控告警成本高等问题。开发门槛高主要源于Flink基于底层实时引擎的特性,需要开发者具备一定的知识基础,如环境配置、语言编程、数据可靠性以及作业质量控制。此外,随着业务需求的多样化,Flink需要支持native流处理与batch处理,以及window和join等复杂操作。
在作业运行质量方面,B站曾使用纯流式Flink streaming和微批次的Spark streaming,但由于Spark 2.4.x版本对某些Operations支持不够完善,导致作业稳定性差。同时,不同作业通过命令行单独提交,增加了维护成本。Yarn的切换和抖动也影响了作业的稳定性,缺乏有效的自恢复机制。因此,监控告警成本较高,业务方需要自行检测作业状态并进行容错恢复,而且没有统一的监控告警体系,接入成本和重复开发维护问题突出。
为了解决这些问题,B站构建了一站式可视化实时流计算平台,支持Spark和Flink等多种实时引擎。该平台强调极致的工程效率,通过SQL和DAG(有向无环图)工作流,简化代码编写,提高开发效率。同时,通过流计算模型抽象,将Source、Transform、Sink的语义进行规范化,定义标准的Source和Sink,支持自定义Transform。
数据集成阶段引入了Schema标准化,确保数据输入、输出和状态的一致性。监控方面,平台实现了Metric化,提供通用指标模型,包括输入源条数、任务消费条数、数据堆积lag、延迟反压情况等。此外,还封装了通用打点SDK,支持业务方直接进行个性化指标打点,并建立了指标化告警体系,根据预设规则(如上下限、周同比、断流等)进行自动告警。
通过这些改进,B站在Flink的应用上实现了更高效、稳定和可监控的实时流处理,降低了开发和运维成本,提升了整个平台的健壮性和用户体验。这一实践不仅展示了Flink在实际业务中的潜力,也为其他企业提供了借鉴和参考。
2021-10-14 上传
2019-11-07 上传
2021-03-03 上传
没读过书的孩子
- 粉丝: 98
- 资源: 162
最新资源
- 高清艺术文字图标资源,PNG和ICO格式免费下载
- mui框架HTML5应用界面组件使用示例教程
- Vue.js开发利器:chrome-vue-devtools插件解析
- 掌握ElectronBrowserJS:打造跨平台电子应用
- 前端导师教程:构建与部署社交证明页面
- Java多线程与线程安全在断点续传中的实现
- 免Root一键卸载安卓预装应用教程
- 易语言实现高级表格滚动条完美控制技巧
- 超声波测距尺的源码实现
- 数据可视化与交互:构建易用的数据界面
- 实现Discourse外聘回复自动标记的简易插件
- 链表的头插法与尾插法实现及长度计算
- Playwright与Typescript及Mocha集成:自动化UI测试实践指南
- 128x128像素线性工具图标下载集合
- 易语言安装包程序增强版:智能导入与重复库过滤
- 利用AJAX与Spotify API在Google地图中探索世界音乐排行榜