暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

博世智驾新动力:Apache DolphinScheduler如何征服数据处理挑战

海豚调度 2024-12-19
159

点击蓝字

关注我们


讲师介绍 PROFILE

陶超权

博世智驾(中国)后端工程师

负责数据处理和数据调度方面工作,在智能驾驶数据处理领域具有丰富的实践经验。在2024年12月Apache DolphinScheduler社区线上交流会上上,他分享了Apache DolphinScheduler在智能驾驶数据处理中的应用案例和未来的发展蓝图。

01

业务背景



博世智驾(中国)隶属于博士集团(Bosch Group),全程是罗伯特·博世有限公司,成立于1886年,全球总部位于德国,员工人数超过42万,遍布50多个国家,业务涵盖汽车与智能交通技术、工业技术、消费品与能源与建筑技术四大领域。

今天的话题将聚焦于是博世在智能驾驶技术方面基于Apache DolphinScheduler的技术改造与业务应用。

智能驾驶技术的发展高度依赖于数据。数据不仅是模型训练的基石,也是功能验证的关键。智能驾驶模型需要大量高质量的数据来训练,以提升感知、决策和控制的精确度。同时,为了确保系统的可靠性和安全性,真实场景下的车辆功能验证同样需要多样化的测试数据。

02

接入改造

接入前


在没有使用Apache DolphinScheduler之前,博世智驾依赖于Jenkins来实现业务代码中的工作流编排和调度。这种方法的优点在于其高度的灵活性,允许定义任何形式的工作流编排。然而,这种方法的缺点也显而易见,就是与业务代码的耦合度很高,任何工作流的变动都需要修改业务代码,这增加了维护的复杂性和风险。

接入后


经过调度选型之后,博世智驾决定采用Apache DolphinScheduler,并基于3.2.0版本进行了一系列的接入改造,以提高数据处理的效率和灵活性。

以下是博世智驾进行的一系列改造的具体实施方案。

MQ Trigger


在数据源的基础上,博世智驾增加了消息源的创建,并将消息源与工作流绑定,实现了工作流的自动触发。这一改进使得工作流能够更加灵活地响应数据源的变化。

节点增强


博世智驾重度依赖K8S任务和dynamic任务进行编排,在这方面基于DolphinScheduler重点进行了一些改造,包括:
  • 主流程与子流程:优化了主流程和子流程的管理。
  • 自定义plugin:允许自定义plugin,以适应特定的业务需求。
  • 修改dynamic节点的子流程生成规则:调整了dynamic节点的子流程生成规则,以更好地控制参数输出。
  • 异步触发&轮询:实现了异步触发和轮询机制,提高了任务的响应速度。
  • Conditional Http:引入了条件HTTP请求,以实现更复杂的工作流逻辑。

动态优先级


博世智驾还基于Apache DolphinScheduler实现了动态优先级功能,以适应不同业务场景的需求,确保关键任务能够优先执行。

03

最佳实践

部署架构


博世智驾采用了K8S部署,实现了控制集群和计算集群的隔离。这种隔离策略包括:
  • namespace隔离:通过namespace级别的隔离,实现了不同任务之间的逻辑分离。
  • Node隔离:通过Node级别的隔离,确保了计算任务不会因为资源抢占或负载导致控制节点被驱逐。

集群版本


博世智驾介绍了TTL Controller,这是一种控制job结束后多久被删除的机制。这一功能从Kubernetes v1.23版本开始正式生效。需要注意的是,使用老版本可能会导致Kubernetes集群压力增大,甚至导致Ds worker OOM(Out of Memory),使用时需谨慎考虑。

K8S任务配置


在K8S任务配置方面,博世智驾提出了以下建议:
  • 任务传参:避免使用大JSON传参,尽量使用文件交互,以文件地址作为参数传递,以减少网络传输的负担。
  • 资源配额:对于耗时较长的k8s任务,尽量将request和limit配置相同,避免资源超卖导致OOM。
  • IO控制:对于IO密集型任务,尽量避免大量读写本地磁盘,使用CFS(Comprehensive File System),以减少对当前node上其他任务的影响。

K8S任务隔离&动态优先级


面对不同类型k8s任务被调度到同一个k8s集群执行的问题,博世智驾提出了以下解决方案:
  • 支持动态修改master上任务的优先级:允许动态调整任务的优先级,以适应不同的业务需求。
  • 通过node标签和容忍度将不同类型的任务分配到不同节点上:通过这种方式,可以确保不同类型的任务在资源使用上相互隔离,同时保持各自的优先级。

04

未来规划


最后,博世智驾表示了将计划在未来实现一些新的功能和进一步的完善,包括实现任务资源隔离,并接入CICD,以进一步提升智能驾驶数据处理的效率和稳定性。这些规划将有助于博世智驾在智能驾驶领域的技术进步和业务发展。

05

结语


这次分享不仅展示了Apache DolphinScheduler在博世智驾这家百年公司的智能驾驶数据处理方面的实际应用,还提供了宝贵的实践经验和未来发展方向。欢迎大家了解并加入Apache DolphinScheduler社区,获取更多信息和资源,共同推动智能驾驶技术的发展。

<🐬🐬 >

推荐阅读

用户实践案例
奇富科技  腾讯音乐 联通数科 拈花云科
蔚来汽车 长城汽车 集度 长安汽车
思科网讯 食行生鲜 联通医疗 联想
新网银行 唯品富邦消费金融  蜀海供应链 
自如 有赞 伊利 当贝大数据
珍岛集团 传智教育 Bigo
YY直播  作业帮 太美医疗
某新能源 中电信翼康
迁移实践
Azkaban   Ooize(当贝迁移案例)   
Airflow (有赞迁移案例) 
Air2phin(迁移工具)
Airflow迁移实践

新手入门
选择Apache DolphinScheduler的10个理由
Apache DolphinScheduler 3.1.8 保姆级教程【安装、介绍、项目运用、邮箱预警设置】轻松拿捏!
Apache DolphinScheduler 如何实现自动化打包+单机/集群部署?
DolphinScheduler快速上手:基于Docker Compose的安装与配置全攻略
Apache DolphinScheduler 在大数据环境中的应用与调优
Apache DolphinScheduler-3.2.0集群部署教程

< 🐬🐬 >
参与社区

参与Apache DolphinScheduler 社区有非常多的参与贡献的方式,包括:


贡献第一个PR(文档、代码) 我们也希望是简单的,第一个PR用于熟悉提交的流程和社区协作以及感受社区的友好度。

社区汇总了以下适合新手的问题列表:https://github.com/apache/dolphinscheduler/issues/5689

非新手问题列表:https://github.com/apache/dolphinscheduler/issues?
q=is%3Aopen+is%3Aissue+label%3A%22volunteer+wanted%22

如何参与贡献链接:https://dolphinscheduler.apache.org/zh-cn/community/development/contribute.html

来吧,DolphinScheduler开源社区需要您的参与,为中国开源崛起添砖加瓦吧,哪怕只是小小的一块瓦,汇聚起来的力量也是巨大的!

文章转载自海豚调度,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论