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

news/2024/12/22 15:31:41/

file

视频及PPT等相关资料:点击查看

讲师介绍

file

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

业务背景

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

file

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

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

file

接入改造

接入前

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

file

接入后

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

file

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

MQ Trigger

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

file file

节点增强

博世智驾重度依赖K8S任务和dynamic任务进行编排,在这方面基于DolphinScheduler重点进行了一些改造,包括:

  • 主流程与子流程:优化了主流程和子流程的管理。
  • 自定义plugin:允许自定义plugin,以适应特定的业务需求。
  • 修改dynamic节点的子流程生成规则:调整了dynamic节点的子流程生成规则,以更好地控制参数输出。
  • 异步触发&轮询:实现了异步触发和轮询机制,提高了任务的响应速度。
  • Conditional Http:引入了条件HTTP请求,以实现更复杂的工作流逻辑。

file

file

动态优先级

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

file

最佳实践

部署架构

博世智驾采用了K8S部署,实现了控制集群和计算集群的隔离。这种隔离策略包括:

  • namespace隔离:通过namespace级别的隔离,实现了不同任务之间的逻辑分离。
  • Node隔离:通过Node级别的隔离,确保了计算任务不会因为资源抢占或负载导致控制节点被驱逐。

file

集群版本

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

file

K8S任务配置

在K8S任务配置方面,博世智驾提出了以下建议:

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

file

K8S任务隔离&动态优先级

面对不同类型k8s任务被调度到同一个k8s集群执行的问题,博世智驾提出了以下解决方案:

  • 支持动态修改master上任务的优先级:允许动态调整任务的优先级,以适应不同的业务需求。
  • 通过node标签和容忍度将不同类型的任务分配到不同节点上:通过这种方式,可以确保不同类型的任务在资源使用上相互隔离,同时保持各自的优先级。

file

未来规划

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

结语

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

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


http://www.ppmy.cn/news/1557222.html

相关文章

huggingface serveless API调用第三方大模型

huggingface提供无需服务器就能调用在线大模型的方案。 1.首先打开huggingface官网 2.在model下选择搜索要使用的大模型,这里我以llama-70b为例,如下图 点击inference API,里面代码如下: 他们提供几种不同库接口openai,huggingface_hub,无需下载模型到本地部署环境,只需…

MySQL 数据库深度解析:历史、技术(b树和b+树)

一. MySQL 的历史与作用 MySQL 诞生于 90 年代,它具有免费开源的特性,这使得其在互联网开发领域广受欢迎,逐渐成为了互联网开发的主流标准。数据库最为核心的任务就是存储数据,并且能够实现快速查询,而在这当中&#x…

Python tkinter写的《电脑装配单》和 Html版 可打印 可导出 excel 文件

Python版 样图: 说明书: markdown # 电脑配置单使用说明书 ## 一、软件简介 电脑配置单是一个用于创建和比较两套电脑配置方案的工具软件。用户可以选择各种电脑配件,输入数量和价格,软件会自动计算总金额,并支持导出和打印配置单。 ## 二、主要功能 1. …

电脑excel词典(xllex.dll)文件丢失是或损坏是什么原因?“xllex.dll文件缺失“要怎么解决?

Excel词典(xllex.dll)文件丢失或损坏?别担心,这里有解决之道! 在日常的电脑使用和办公软件操作中,我们偶尔会碰到一些让人头疼的问题,比如Excel突然提示“Excel词典(xllex.dll&…

半连接转内连接规则的原理与代码解析 |OceanBase查询优化

背景 在查询语句中,若涉及半连接(semi join)操作,由于半连接不满足交换律的规则,连接操作必须遵循语句中定义的顺序执行,从而限制了优化器根据参与连接的表的实际数据量来灵活选择优化策略的能力。为此&am…

相机与NAS的奇妙组合,如何使用相机拍照自动上传或备份到NAS

相机与NAS的奇妙组合,如何使用相机拍照自动上传或备份到NAS 哈喽小伙伴们好,我是Stark-C~ 对于喜欢使用专业器材拍照摄影的小伙伴来说,想要将相机存储卡中的照片或视频导出到电脑上,要么是使用数据线直接和相机连接,…

LLaMA-Factory 单卡3080*2 deepspeed zero3 微调Qwen2.5-7B-Instruct

环境安装 git clone https://gitcode.com/gh_mirrors/ll/LLaMA-Factory.git 下载模型 pip install modelscope modelscope download --model Qwen/Qwen2.5-7B-Instruct --local_dir /root/autodl-tmp/models/Qwen/Qwen2.5-7B-Instruct 微调 llamafactory-cli train \--st…

如何更改 maven 指定的 java 版本 set JAVA_HOME=C:\Program Files\Java\jdk1.8

当我们用 mvn 在终端执行的时候 例如 mvn clean test执行结果如下: 此时我们想要修改 maven 指定的JAVA_HOME 找到maven的安装目录,打开 mvn.cmd 然后鼠标右键,点击编辑按钮 将 第一行 JAVA_HOME 设置为自己的本地java目录即可 然后再次…