Apache DolphinScheduler 开源之夏学生项目申请开启,6 大课题等你来拿万元奖金!

news2024/11/24 16:38:55

file

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

开源之夏 2023 介绍

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

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

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

奖金设置

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

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

活动流程

file

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

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

Apache DolphinScheduler社区介绍

file

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

本文由 白鲸开源科技 提供发布支持!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/514222.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

i春秋 Misc Web 爆破-2

审计一下代码,和爆破-1的区别是,没有了正则匹配,且可变变量$$a变成了普通变量$a; 尝试像爆破-1那样传入超全局变量$GLOBALS 根据回显,我们发现flag不在变量中(它还嘲笑我们“too young too simple”太年轻…

后端注册表单验证器实现

视图函数在去注册用户之前需要进行验证,表单验证需要先下载 flask-wtf 在终端执行: pip install flask-wtf新建forms.py import wtforms from wtforms.validators import Email,Length,EqualTo from models import UserModel,EmailCaptchaModel# Form…

详细的步骤在VirtualBox 上安装 CentOS 7

下面是详细的步骤来安装 CentOS 7 在 VirtualBox 上: 下载 CentOS 7 ISO 镜像文件: 前往 CentOS 官方网站的镜像下载页面:Download在页面上找到适合你系统架构的 CentOS 7 ISO 镜像文件,并下载到本地。 安装 VirtualBox&#x…

为什么大部分企业都选择加密软件来防止数据泄露?

加密软件是使用加密算法对数据或信息进行编码转换的软件,目的是防止未授权访问与保护敏感内容。它是实现加密技术的重要手段,为用户提供了简单易用的加解密功能,无需深入了解复杂的数学原理。 加密软件使用的加密算法通常采用对称与非对称算法…

16 KVM虚拟机配置-其他常见配置项

文章目录 16 KVM虚拟机配置-其他常见配置项16.1 概述16.2 元素介绍16.3 配置示例 16 KVM虚拟机配置-其他常见配置项 16.1 概述 除系统资源和虚拟设备外,XML配置文件还需要配置一些其他元素,本节介绍这些元素的配置方法。 16.2 元素介绍 iothreads&…

干货丨手把手教会群晖Mailplus设置及邮件免拒收(SPF、DMARC、DKIM)

开篇之前,我想说通过群晖 Mailplus Server 自建一个邮件服务器绝对是一个非常有成就感的事情,搭建 过程中我们可以学习到邮件服务使用的协议,端口号,MX解析等很多知识。如果你已经准备好,那就让 我们开始吧。 前期准备…

前端013_标签模块_新增功能

标签模块_新增功能 1、需求分析2、新增窗口实现3、列表引用新增组件4、关闭弹出窗口5、校验表单数据6、提交表单数据6.1 EasyMock 添加新增模拟接口6.2、Api 调用接口1、需求分析 点击 新增 按钮后,对话框形式弹出新增窗口输入类别信息后,点击 确定 提交表单数据; 2、新增窗…

DARWIN Survival of the Fittest Fuzzing Mutators读论文笔记

DARWIN: Survival of the Fittest Fuzzing Mutators 作者背景 达姆施塔特工业大学:成立于1877年,是德国著名理工科大学 ‡萨格勒布大学: 是克罗地亚最大的大学,也是该地区历史最悠久的大学 拉德堡德大学:位于荷兰奈梅亨市,又称奈梅…

Redis与SpringBoot的集成:自定义RedisTemplate类,创建一个工具类:可以帮助我们更好的使用redis中的API

这里使用的环境是在windows环境下,也可以放在服务器中,只要知道端口号和ip即可,如果有不知道怎么部署环境的可以看这篇文章去在Windows环境下去部署redis环境redis之jedis:通过redis的API与Java的集成_不想睡醒的梦的博客-CSDN博客…

css的clip-path学习

文章目录 clip-path的几个值polygon多边形circle圆形ellipse椭圆形inset 矩形round后面是四个角的度数 一个简单的应用,比如画一段曲线 参考博文 clip-path的几个值 自己学习后,先把clip-path理解为在原图上绘制轮廓,显示的内容是轮廓内的内…

2023苹果商务管理模式分发app完全指南

随着苹果对企业级开发证书的管控越来越严格,越来越多的企业级证书到期后,苹果不再予以续约,但是很多app都有企业内部分发需求,不希望自己的应用被公开上架。这时候,我们可以参考苹果官方的建议,使用商务管理…

繁华三千如梦散,红尘俗世要释怀

岁月的折痕在眼角盛开,一深,一浅,交错着旧时光的梦。 梦里是累积的回忆,厚厚的凌乱一地。 那些,都是悄悄溜走的充满烟火气的日子。 生活像是流水账一般,就这样过了,一天又一天,一年…

ConcurrentHashMap进阶面试题

ConcurrentHashMap 1.8的优化 存储的时候的优化写数据的时候加锁的优化扩容时的优化,有一个协助扩容的概念计数器的优化,在记录元素个数时,使用的类似与longAdder的形式,不会过度消耗CPU资源 为什么多线程情况下longAdder会比ato…

人体工学椅真的很舒服

前言 人体工学椅是现代办公室中必不可少的家具之一。作为一款专门设计为舒适、健康和高效的椅子,它为人们提供了更好的工作和学习体验。 人体工学椅的设计理念是以人体工程学为基础,根据人体骨骼生理学、生物力学和心理学等多个角度进行科学的设计。它…

公路工程公路bim数据与GIS数据融合应用

摘要: BIM技术因其自身的协同性、可模拟性以及可视化优势,能够补足传统项目管理存在的短板,成为新一代项目管理模式。本文将运用BIM技术打造一体化管理平台,达到项目管理的智能化管理水平,实现更易维、更安全、更节能…

谈一谈数据库设计原则

到开发的时候才发现,原来后端不是最难的,最难得是数据库的设计,往往有时候开发新模块的时候才发现,之前数据库设计的一些问题,今天就来简单谈谈数据库设计方面的一些原则。 数据库范式 ​ 通过将数据结构分解成小的部…

第五十四章 Unity 移动平台输入(下)

本章节我们介绍一个模拟器插件。这种插件比较多,比如EasyTouch,Lean Touch,Joystick Pack等等。EasyTouch是一个使用非常广泛的插件,支持点击,拖拽,遥感等很多常用功能。不过遗憾的是,该插件已经…

[JAVA]直接插入排序

插入排序就像玩扑克牌一样,把元素按照大小插入到一个已经排好序的序列中,直到全部元素排好。 假设我们拿到了一个数组,请问我们该从哪一个元素开始着手于直接插入排序呢? 答案是:第二个元素 我们可以假设,第…

微服务测试如何测试?

本文将讨论微服务测试的重要性、挑战和最佳实践。 微服务架构是一种越来越流行的构建复杂分布式系统的方法。在此体系结构中,大型应用程序被分成较小的、独立的服务,这些服务通过网络相互通信。微服务测试是确保这些服务无缝协同工作的关键步骤。本文将…

《微服务实战》 第五章 Spring Cloud Netflix 之 Ribbon

前言 Spring Cloud Ribbon 是一套基于 Netflix Ribbon 实现的客户端负载均衡和服务调用工具,其主要功能是提供客户端的负载均衡算法和服务调用。 1、负载均衡 负载均衡(Load Balance) ,简单点说就是将用户的请求平摊分配到多个…