开源之夏 2023 学生报名已经正式开启!Apache DolphinScheduler 今年继续参与开源之夏的活动,2023 年 4 月 29 日-6 月 3 日 15:00 UTC+8,同学们可以在开源之夏官网 https://summer-ospp.ac.cn/ 找到 Apache DolphinScheduler 下的项目,挑选自己感兴趣的课题,通过项目相对应导师联系方式与导师沟通并准备申请资料,提交申请。

开源之夏 2023 介绍

开源之夏是由中科院软件所“开源软件供应链点亮计划”发起并长期支持的一项暑期开源活动,旨在鼓励在校学生积极参与开源软件的开发维护,培养和发掘更多优秀的开发者,促进优秀开源软件社区的蓬勃发展,助力开源软件供应链建设。

开源之夏联合国内外开源社区,针对重要开源软件的开发与维护提供项目任务,面向全球高校学生开放报名。中选学生将在项目资深开发者(项目导师)的指导下,参与开源贡献,完成开发工作并贡献给开源社区。

零距离体验顶级开源项目、跟着技术大牛提升研发能力、用成果赢取丰厚奖金和证书等,都是此次活动的亮点,非常值得一试。

奖金设置

● 进阶难度:学生结项奖金税前人民币 12000 元。

● 基础难度:学生结项奖金税前人民币 8000 元。

活动流程

当前,活动已经进行到学生注册、遇到事沟通项目、提交项目申请的阶段,满足条件的学生均可报名参加。今年 11 月,活动将进入尾声,公布年度优秀学生名单。

可参考学生指南查看报名详细流程:https://summer-ospp.ac.cn/help/student/

Apache DolphinScheduler社区介绍

Apache DolphinScheduler基于Apache开源社区理念打造,是全球知名的DataOps领域开源项目。作为一个云原生分布式去中心化,易扩展的可视化DAG工作流任务调度平台,它致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中开箱即用。独特的架构设计和产品设计,使得其具备高可靠性、简单易用、高扩展性、丰富的使用场景等特性。

  1. 高可靠性:去中心化的多Master和多Worker服务对等架构, 避免单Master压力过大,并采用任务缓冲队列来避免过载;
  2. 简单易用:DAG监控界面让所有流程定义可视化,通过拖拽任务完成定制DAG,通过API方式与第三方系统集成, 一键部署;
  3. 丰富的使用场景:支持多租户,支持暂停恢复操作. 紧密贴合大数据生态,提供Spark, Hive, M/R, Python, Sub_process, Shell等近20种任务类型;
  4. 高扩展性:支持自定义任务类型,调度器使用分布式调度,调度能力随集群线性增长,Master和Worker支持动态上下线。

截至目前,Apache DolphinScheduler社区在开源力量的推动下发展迅速,已有460+ Contributors 积极参与到社区的共建中,GitHub Star 已达10.4k,以开源社区的模式集合全球顶尖高科技公司的共同贡献,打造全球极致简单易用、稳定可扩展的DataOps平台。

Apache DolphinScheduler已累计在1000多家公司生产环境中作为企业的核心调度系统,包括IBM、腾讯、科大讯飞、美团、360、联通、顺丰等,覆盖金融、电信、零售、云计算、数据处理等广泛领域。

项目官网:https://dolphinscheduler.apache.org/

GitHub:https://github.com/apache/dolphinscheduler

加入Slack:https://join.slack.com/t/asf-dolphinscheduler/shared_invite/zt-1cmrxsio1-nJHxRJa44jfkrNL_Nsy9Qg

DolphinScheduler项目课题介绍

本次活动,Apache DolphinScheduler 开源社区共有 6 个项目课题经过组委会评审,同学们可在链接页面中挑选自己感兴趣的项目:

https://summer-ospp.ac.cn/org/orgdetail/22999f09-2be2-4dd8-b10f-bc4d6610cc25?lang=zh

01 重构依赖任务模式

项目链接:https://summer-ospp.ac.cn/org/prodetail/232290219?list=org&navpage=org

项目难度:进阶

支持语言:中文&英文

项目社区导师:进勇

导师联系邮箱:jiny.li@foxmail.com

技术领域:Java

开源协议:Apache License 2.0

项目简述:

当前状况:当前的依赖是依赖单个任务和All,这里的All其实是依赖工作流,并不是依赖所有的任务。

计划改造:

1、依赖单个任务的方式不变,All改造成依赖工作流中所有任务,新增一种类型依赖工作流。

2、前端在依赖的地方增加个单选框,选择依赖任务或者工作流,如果选择依赖任务,任务的选择框显示出来,如果现在依赖工作流,任务的选择框隐藏

3、对于后端,All对于的任务code还是0,依赖工作流时,对应的任务code可使用-1或其他表示。

项目产出要求:

实现dependent任务既能依赖全部的任务,又能依赖工作流。

项目技术要求:

● 熟悉 java语言

● 对任务调度系统有了解

项目成果仓库:

https://github.com/apache/dolphinscheduler

02 Dolphinscheduler master/worker

恢复容错优化

项目链接:

https://summer-ospp.ac.cn/org/prodetail/23b660198?list=org&navpage=org

项目难度:进阶

支持语言:中文&英文

项目社区导师:向梓豪

导师联系邮箱:zihaoxiang@apache.org

技术领域:Bash、Linux、Java

开源协议:Apache License 2.0

项目简述:

当前主/工作节点挂起时。它将执行容错操作,并在主/工作节点重新启动后重新启动失败的任务。这将导致用户在Linux进程或yarn应用程序中执行的Shell/Spark/Flink任务重复运行。

因此,我建议在主/工作程序重新启动后,如果这些任务处于正常执行状态,则不会重新执行。

Shell节点,因为当前DS任务节点的进程的执行路径是唯一的。因此,我们可以通过 ps-ef | grep XXX 查询该进程是否存在。如果是,则不会重新启动任务。

Yarn 相关的任务节点通过 yarn application-status application_id 检查任务是否正在运行。如果是,则不会重新启动任务。

项目产出要求:

在容错恢复过程中,Shell节点能够正常获取其先前的运行状态。

在容错恢复过程中,Yarn 相关的任务能够正常获取其先前的运行状态。

项目技术要求:

熟悉 Linux 进程管理

理解 Hadoop Yarn 组件并且能根据官方文档快速学习使用相应API

熟悉 Java 语言

项目成果仓库:

https://github.com/apache/dolphinscheduler

03 pydolphinscheduler任务增加

minix机制

项目链接:

https://summer-ospp.ac.cn/org/prodetail/232290221?list=org&navpage=org

项目难度:基础

支持语言:中文

项目社区导师:zhongjiajie

导师联系邮箱:zhongjiajie955@gmail.com

技术领域:Python

开源协议:Apache License 2.0

项目简述:

pydolphinscheduler 是 apache dolphinscheduler 的 python sdk,允许用户通过 python 语法定义工作流和任务。目前,pydolphinscheduler 任务的代码都是进行单独定义的,如 shell 任务

class Shell(Task):
_task_custom_attr = {
"raw_script",
} ext: set = {".sh", ".zsh"}
ext_attr: str = "_raw_script" def __init__(self, name: str, command: str, *args, **kwargs):
self._raw_script = command
super().__init__(name, TaskType.SHELL, *args, **kwargs)
``` 我们发现有部分任务需要有特定的属性,如 Kubernetes 任务 https://github.com/apache/dolphinscheduler-sdk-python/issues/25 。我们希望引用 minix 类来解决这部分问题,关于minix 可以参考 https://www.pythontutorial.net/python-oop/python-mixin/ 项目产出要求:
通过 minix 解决这个类似的问题
保证单元测试及覆盖率
项目技术要求:
了解 python 基础,对 OOP 有一定认识
了解 pytest 相关
项目成果仓库:
https://github.com/apache/dolphinscheduler
## 04 数据源中心扩展成源中心 项目链接:
https://summer-ospp.ac.cn/org/prodetail/232290223?list=org&navpage=org
项目难度:进阶
支持语言:中文&英文
项目社区导师:高楚枫
导师联系邮箱:chufenggao@gmail.com
技术领域:Vue.js、Spring、BootDatabase、Java
开源协议:Apache License 2.0
项目简述:
DolphinScheduler 有一个 Datasource Center 的组件,用于管理 sql 任务的外部连接,如 mysql、hive、spark 等。 但是不只是sql任务,其他一些 DolphinScheduler 任务插件也需要外部连接,比如AWS EMR任务、Zeppelin任务、K8S任务等。我们可以丰富需要 Datasource Center 来管理连接的场景,尤其是 那些具有凭据的外部系统并将其升级到连接中心。 相关问题:[Feature] Add connection center feature for DS #10283(https://github.com/apache/dolphinscheduler/issues/10283) 目标:
将 Datasource Center 的名称更改为 Connection Center。
重构部分AWS EMR、Zeppelin、K8S、Sagemaker任务插件,方便用户在连接中心管理外部连接。
去掉安全中心的Cluster Management和K8S Namespace Manage,因为管理K8S集群不是大数据编排工具的工作。用户可以在连接中心为 K8S 任务插件配置 K8S 连接。 项目产出要求:
一个或多个提交到github仓库
项目技术要求:
[后端] 熟悉Java编程。
[后端] 对 Spring Boot Framework 有一定的了解。
[前端] 对VUE有所了解
项目成果仓库:
https://github.com/apache/dolphinscheduler
## 05 增加跨工作流的参数传递功能 项目链接:
https://summer-ospp.ac.cn/org/prodetail/232290357?list=org&navpage=org
项目难度:进阶
支持语言:中文
项目社区导师:鲍亮
导师联系邮箱:baoliang.leon@gmail.com
技术领域:Vue.js、Spring Boot、Java
开源协议:Apache License 2.0
项目简述: 1. 工作流可以选择自己的输出参数,作为工作流的输出参数,输出给下游任务使用。 场景1:shellA -> subprocessB -> shellC shellA 查出所有学生信息 (a,b,c) 并将 users 输出给下游任务subprocessB
subprocessB 是一个子工作流, 负责计算所有学生个数 userCount,并将userCount 作为工作流的输出传递给下游
shellC 负责将 userCount 输出到控制台
2. 依赖任务也可以选择将被依赖任务的输出参数继承过来使用。增加依赖参数继承功能
需要在依赖任务上增加一个字段:是否继承被依赖任务的参数 场景2: 工作流A :taska1 -> taska2, taska2 输出了参数 count=10
工作流B : taskb1 -> dependentb2 -> taskb3
dependentb2 依赖了taska2 就可以将count继承过来作为dependentb2的输出参数,给taskb3使用 备注:前端知识不用太多,只是简单的效果 项目产出要求: 实现以上两个场景的需求,并将代码提交到开发分支上
详细的设计文档以及使用文档
详尽的UT测试类
项目技术要求: 熟悉 Java 语言
熟悉 spring boot
可以实现简单的前端效果
项目成果仓库:
https://github.com/apache/dolphinscheduler
## 06 DolphinScheduler Listener机制 项目链接:
https://summer-ospp.ac.cn/org/prodetail/232290593?list=org&navpage=org
项目难度:进阶
支持语言:中文
项目社区导师:孙朝和
导师联系邮箱:sunzhaohe0825@gmail.com
技术领域:SpringBoot、Java
开源协议:Apache License 2.0
项目简述:
当工作流/任务执行时,第三方系统希望可以通过接收消息的方式(而非轮询)来实时获取工作流/任务的状态和相关信息,可以通过添加自定义Listener的方式来实现获取需要的信息推送到特定的目的地(消息队列、外部系统接口等)的目标。
项目产出要求:
完成Listener机制设计和开发、并将代码提交到开发分支上
详细的设计文档和使用文档
详尽的UT测试类
项目技术要求:
熟悉Java语言
熟悉SpringBoot
项目成果仓库:
https://github.com/apache/dolphinscheduler 欢迎同学们报名 Apache DolphinScheduler 的项目,为社区建设添砖加瓦的同时,获得丰富的开源经历和丰厚的奖金回报! 为加快项目报名申请速度,建议同学们可以主动向导师发送邮件进行沟通,附上自己的方案和简历,让我们更加了解你,并认真了解社区项目文档,与导师充分沟通。 我们还有专门的开源之夏活动交流群,给大家解答关于项目和参与活动的疑惑,添加小助手 17743592110 微信,并备注“开源之夏 2023”,我们将拉您进入交流群。 ![file](https://img2023.cnblogs.com/other/2685289/202305/2685289-20230511162454599-2032975963.png) > 本文由 [白鲸开源](http://www.whaleops.com/index.html) 提供发布支持!

Apache DolphinScheduler 开源之夏学生项目申请开启,6 大课题等你来拿万元奖金!的更多相关文章

  1. 数据平台调度升级改造 | 从Azkaban 平滑过度到 Apache DolphinScheduler 的操作实践

    Fordeal的数据平台调度系统之前是基于Azkaban进行二次开发的,但是在用户层面.技术层面都存在一些痛点问题难以被解决.比如在用户层面缺少任务可视化编辑界面.补数等必要功能,导致用户上手难体验差 ...

  2. 金融任务实例实时、离线跑批Apache DolphinScheduler在新网银行的三大场景与五大优化

    在新网银行,每天都有大量的任务实例产生,其中实时任务占据多数.为了更好地处理任务实例,新网银行在综合考虑之后,选择使用 Apache DolphinScheduler 来完成这项挑战.如今,新网银行多 ...

  3. 议题征集令 | Apache DolphinScheduler Meetup 2021 来啦,议题征集正式开启!

    点击上方 蓝字关注我们 社区的小伙伴们,经过精心筹备,我们很高兴地宣布,Apache DolphinScheduler Meetup 2021 将于 2021 年 11 月 27 日到来! 在 Mee ...

  4. Apache DolphinScheduler 1.3.6 功能发布说明

    参与人员 @chengshiwen.@hailin0.@wanghong1314.@ruanwenjun.@xxjingcd.@zhangguohao.@zhuangchong.@syb8535531 ...

  5. 我和Apache DolphinScheduler的缘分

    关于 DolphinScheduler社区 Apache DolphinScheduler(incubator) 于17年在易观数科立项,19年3月开源, 19 年8月进入Apache 孵化器,社区发 ...

  6. 我与Apache DolphinScheduler的成长之路

    关于 Apache DolphinScheduler社区 Apache DolphinScheduler(incubator) 于17年在易观数科立项,19年3月开源, 19 年8月进入Apache ...

  7. 挑战海量数据:基于Apache DolphinScheduler对千亿级数据应用实践

    点亮 ️ Star · 照亮开源之路 GitHub:https://github.com/apache/dolphinscheduler 精彩回顾 近期,初灵科技的大数据开发工程师钟霈合在社区活动的线 ...

  8. 新一代大数据任务调度 - Apache DolphinScheduler喜提十大开源新锐项目 & 最具人气项目

    经 10000+ 开发者公开票选,20+专家评审. 10+ 主编团打分,历经数月打磨,11 月 19 日,由InfoQ 发起并组织的[2020中国技术力量年度榜单评选]结果正式揭晓. 2020 年度十 ...

  9. 【喜讯】Apache DolphinScheduler 荣获 “2020 年度十大开源新锐项目”

    经 10000+ 开发者公开票选,20+专家评审. 10+ 主编团打分,历经数月打磨,11 月 19 日,由InfoQ 发起并组织的[2020中国技术力量年度榜单评选]结果正式揭晓. 2020 年度十 ...

  10. 感谢有你!Apache DolphinScheduler 项目 GitHub star 突破 8k

    本周伊始,Apache DolphinScheduler 项目在 GitHub 上的 Github Star 总数首次突破 8K.目前,Apache DolphinScheduler 社区已经拥有 C ...

随机推荐

  1. [Unity基础]碰撞和触发

    参考链接: https://www.cnblogs.com/hont/p/4472326.html 碰撞关系表: https://docs.unity3d.com/Manual/CollidersOv ...

  2. What is Weight Lifting?

    Weight lifting is the process of lifting items of great mass in order to increase the muscle size an ...

  3. 打开CMD方式

    打开CMD的方式 win+r 输入cmd 常用的Dos命令 1.#盘符切换2.#查看当前文件目录下的所有文件 dir3.#切换目录 cd change directory4.#cd .. 返回上级5. ...

  4. 声网Agora 教育 aPaaS 灵动课堂升级:UI与业务逻辑分离,界面、功能自定义更灵活

    声网Agora 教育 aPaaS 产品灵动课堂现已升级至 v1.1.0 版本.声网Agora 灵动课堂可以帮助教育机构和开发者最快 15 分钟上线自有品牌.全功能的在线互动教学平台,节省 90% 开发 ...

  5. C++/Qt网络通讯模块设计与实现(四)

    在C++/Qt网络通讯模块设计与实现(三)中提到了一个概念,即接受者所依附的线程:关注我微信公众号的技术朋友留言对该概念还是不解,这节就单独讲述这个概念的理论与实际应用,这种应用无处不在,因为与Qt的 ...

  6. Flink 编程接口(Flink SQL Table API DataStream API 和 DataSet API Stateful Stream Process API)

    Flink 根据数据集类型的不同将核心数据处理接口分为两大类,一类是支持批计算的接口DataSet API,另外一类是支持流计算的接口 DataStream API.同时 Flink将数据处理接口抽象 ...

  7. 字符串常见API(charCodeAt\fromCharCode)

    1.myStr.charCodeAt(num) 返回指定位置的字符的Unicode(是字符编码的一种模式)编码. 2.String.fromCharCode() String的意思就是不能用自己定义的 ...

  8. ECC(SM2) 简介及 C# 和 js 实现【加密知多少系列】

    〇.简介 椭圆曲线密码学(Elliptic curve cryptography:ECC),一种建立公开密钥加密的演算法,基于椭圆曲线数学.利用有限域上椭圆曲线的点构成的 Abel 群离散对数难解性, ...

  9. 一文带你弄懂 Maven 拉包原理

    业务需求开发的时候,我们总是会遇到拉不到依赖包的情况.此时如果不清楚 Maven 拉取依赖包的原理,那么很可能找不到问题所在.今天树哥就带大家了解下 Maven 拉包的原理,让你在遇到问题的时候能快速 ...

  10. python入门教程之十二Open及file操作

    读和写文件 open() 将会返回一个 file 对象,基本语法格式如下: open(filename, mode) filename:包含了你要访问的文件名称的字符串值. mode:决定了打开文件的 ...