活动介绍
开源之夏是由 “开源软件供应链点亮计划” 发起并长期支持的一项暑期开源活动,旨在鼓励在校学生积极参与开源软件的开发维护,促进优秀开源软件社区的蓬勃发展,同时培养和发掘更多优秀的开发者。
开源之夏活动联合了包括 Apache Flink 在内的国内外各大开源社区,针对重要开源软件的开发与维护提供项目任务,并面向全球高校学生开放报名。学生可在本活动中自主选择感兴趣的项目任务进行申请,并在中选后获得该开源项目资深维护者(社区导师)的亲自指导,通过 3 个月的时间,深度体验真实世界的软件开发,感受开源技术共建的魅力。完成项目并贡献给社区后,参与学生还将获得开源之夏活动奖金和结项证书。
开源之夏活动官网:https://summer-ospp.ac.cn/
社区介绍
Apache Flink 是一款高性能分布式流批一体计算引擎,支持流处理、批处理、复杂事件处理、机器学习等计算场景。在流计算场景,Apache Flink 一直在业界保持着领先地位。在开源方面,Flink 已连续三年蝉联 Apache 基金会最活跃开源项目之一的殊荣,有超过 1000 名遍布全球的贡献者为 Flink 贡献。作为流计算领域的首选引擎,Apache Flink 已经被众多国内外知名公司采用,并逐渐成为企业大数据的核心基础设施,包括 Apple、Netflix、Amazon、Uber、Cloudera、LinkedIn、阿里巴巴、滴滴、美团、快手、字节跳动等公司。
项目介绍
Apache Flink 在本次 “开源之夏” 活动中共发布了 3 个课题,供感兴趣的同学报名参与。
项目 1:Flink Table Store 预聚合存储模型
项目描述:
Flink Table Store 是一个流批统一的存储,用于在 Flink 中为流批处理建立动态表,支持实时流消费和实时 OLAP 查询。Flink Table Store 面向更新场景提供 OLAP 的能力,大量更新数据写入 Table Store 后,后台会合并相同主键的数据,默认是保留最后一条。我们可以引入更丰富的合并策略,其中已经引入的是 PartialUpdateMergeFunction,合并时补全非 NULL 字段。我们可以引入更强大的合并策略,比如支持预聚合的合并。
项目产出:
- 完成该功能的开发,并贡献到 Flink Table Store 社区;
- 完成预聚合的 API 设计;
- 完成预聚合的 E2E 测试;
- 实现多个聚合算子;
- (可选) 实现 MATERIALIZED VIEW 语法。
技能要求:Java、存储相关知识
项目仓库:https://github.com/apache/flink-table-store
项目导师:李劲松 lzljs3620320@apache.org
项目难度:基础
项目 2:面向 MySQL CDC 连接器的数据限流功能
项目描述:
目前 Flink 的 Source 原生不支持限流,基于 Flink Source 的 CDC 连接器也无法实现限流功能,当多并发从上游数据库读取数据时存在源库负载大的风险,本项目通过在 Flink Source上提供限流功能,CDC 连接器适配后,实现读取数据时的限流。
项目产出:
学习 Flink CDC 技术原理,在开源社区设计并实现通用的 CDC 数据源限流方案,提升 Flink CDC 在大规模数据业务场景下的稳定性。
- 在 Flink 社区 完成 Source 数据限流 API 设计,获得社区认可;
- 基于限流 API,在 Flink CDC 社区实现 MySQL CDC 数据限流功能;
- 增加端到端测试,验证数据限流能正确生效。
技能要求:Java、数据集成相关知识
项目仓库:https://github.com/ververica/flink-cdc-connectors
项目导师:徐榜江 leonard@apache.org
项目难度:基础
项目 3:设计并开发实现 Flink JobManager 进程拆分方案
项目描述:
Flink 目前采用一个 JobManager + 多个 TaskManager 的进程模型,其中 JobManager 进程中又包含了 Dispatcher、ResourceManager、JobMasters 等多个组件。这一进程模型在部分特殊场景下存在一些问题,例如在组成超大规模集群时存在单点可用性及性能瓶颈、在 IoT 嵌入式设备上使用时资源开销过大等。请针对这些问题,对 Flink 的进程模型进行优化改造。
项目产出:
- 基础要求:设计并开发实现 Flink JobManager 进程拆分方案,并贡献社区;
- 进阶要求 (可选):Flink JobManager 进程拆分方案下,Dispatcher、ResourceManager 故障作业无需重启;
- 进阶要求 (可选):设计并开发实现 Flink 单进程模式,并贡献社区。
技能要求:Java、分布式协调机制、高可用机制
项目仓库:https://github.com/apache/flink
项目导师:宋辛童 xtsong@apache.org
项目难度:进阶
如何参与
1. 申请资格
- 本活动面向年满 18 周岁在校学生;
- 暑期即将毕业的学生,只要在申请时学生证处在有效期内,就可以提交申请;
- 海外学生可提供录取通知书、学生卡、在读证明等文件用于证明学生身份。
2. 参与流程
有意向参与的同学请注意不要错过 5 月 21 日 ~ 6 月 4 日的项目申请书的投递时间。
3. 参与建议
- 仔细阅读学生指南:https://summer-ospp.ac.cn/help/student/
认真了解社区:仔细阅读社区的文档、设计、源码,认真熟悉社区的参与方式
- 多与导师沟通:对开源项目有一个全面的认识;主动联系导师,和导师充分沟通;细化方案,提升可行性。
- 项目申请书的质量是被选中的主要因素,仔细阅读申请要求,提交申请材料。
- 为了方便高校同学与 Apache Flink 社区项目导师进行及时交流,欢迎加入【Flink 开源之夏】微信群。
时间:5 月 21 日 9:00-12:25
PC 端直播观看:https://developer.aliyun.com/live/248997
移动端建议微信扫一扫关注 ApacheFlink 视频号预约观看:
更多 Flink 相关技术问题,可扫码加入社区钉钉交流群
第一时间获取最新技术文章和社区动态,请关注公众号~
活动推荐
阿里云基于 Apache Flink 构建的企业级产品-实时计算Flink版现开启活动:
99 元试用 实时计算Flink版(包年包月、10CU)即有机会获得 Flink 独家定制卫衣;另包 3 个月及以上还有 85 折优惠!
了解活动详情:https://www.aliyun.com/product/bigdata/sc