惊落一身雪 发表于 2024-12-19 12:26:15

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

http://openwrite-whaleops.oss-cn-zhangjiakou.aliyuncs.com/31504_27A6D787F72548BE8948C6139EB88F10
视频及PPT等相关资料:点击检察
讲师介绍

http://openwrite-whaleops.oss-cn-zhangjiakou.aliyuncs.com/31504_206EA9A156504C85B71407E883FBCDDD
陶超权,博世智驾(中国)后端工程师,负责数据处理和数据调度方面工作,在智能驾驶数据处理领域具有丰富的实践履历。在2024年12月Apache DolphinScheduler社区线上交流会上上,他分享了Apache DolphinScheduler在智能驾驶数据处理中的应用案例和未来的发展蓝图。
业务配景

博世智驾(中国)从属于博士团体(Bosch Group),全程是罗伯特·博世有限公司,成立于1886年,全球总部位于德国,员工人数超过42万,遍布50多个国家,业务涵盖汽车与智能交通技能、工业技能、消费品与能源与修建技能四大领域。
http://openwrite-whaleops.oss-cn-zhangjiakou.aliyuncs.com/31504_868ED7D87F8E462386D46C94709846CF
本日的话题将聚焦于是博世在智能驾驶技能方面基于Apache DolphinScheduler的技能改造与业务应用。
智能驾驶技能的发展高度依赖于数据。数据不但是模型训练的基石,也是功能验证的关键。智能驾驶模型需要大量高质量的数据来训练,以提升感知、决策和控制的准确度。同时,为了确保体系的可靠性和安全性,真实场景下的车辆功能验证同样需要多样化的测试数据。
http://openwrite-whaleops.oss-cn-zhangjiakou.aliyuncs.com/31504_F5AADB8930594CD384B5F0B50D54A7AA
接入改造

接入前

在没有使用Apache DolphinScheduler之前,博世智驾依赖于Jenkins来实现业务代码中的工作流编排和调度。这种方法的优点在于其高度的机动性,答应界说任何形式的工作流编排。然而,这种方法的缺点也显而易见,就是与业务代码的耦合度很高,任何工作流的变动都需要修改业务代码,这增长了维护的复杂性和风险。
http://openwrite-whaleops.oss-cn-zhangjiakou.aliyuncs.com/31504_0636C800328C4E20BD3C2A25FAA51B30
接入后

经过调度选型之后,博世智驾决定采用Apache DolphinScheduler,并基于3.2.0版本举行了一系列的接入改造,以提高数据处理的效率和机动性。
http://openwrite-whaleops.oss-cn-zhangjiakou.aliyuncs.com/31504_E6D8CCBD043643A28179FE24EA194DCF
以下是博世智驾举行的一系列改造的具体实施方案。
MQ Trigger

在数据源的基础上,博世智驾增长了消息源的创建,并将消息源与工作流绑定,实现了工作流的自动触发。这一改进使得工作流能够更加机动地响应数据源的变革。
http://openwrite-whaleops.oss-cn-zhangjiakou.aliyuncs.com/31504_C2DEED88967041F3BCC18DB26CB7ECEC
http://openwrite-whaleops.oss-cn-zhangjiakou.aliyuncs.com/31504_864AB95397904BB295707BE35F41E9D9
节点增强

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

[*]主流程与子流程:优化了主流程和子流程的管理。
[*]自界说plugin:答应自界说plugin,以适应特定的业务需求。
[*]修改dynamic节点的子流程生成规则:调整了dynamic节点的子流程生成规则,以更好地控制参数输出。
[*]异步触发&轮询:实现了异步触发和轮询机制,提高了任务的响应速率。
[*]Conditional Http:引入了条件HTTP请求,以实现更复杂的工作流逻辑。
http://openwrite-whaleops.oss-cn-zhangjiakou.aliyuncs.com/31504_B98768A701A844B383D8CFC7494F6CC0
http://openwrite-whaleops.oss-cn-zhangjiakou.aliyuncs.com/31504_0AB52F5DF7C14959B53F49D7D4D8CF80
动态优先级

博世智驾还基于Apache DolphinScheduler实现了动态优先级功能,以适应不同业务场景的需求,确保关键任务能够优先执行。
http://openwrite-whaleops.oss-cn-zhangjiakou.aliyuncs.com/31504_C3EFE7F5DBDB4292ADFA53A636DA87AC
最佳实践

部署架构

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

[*]namespace隔离:通过namespace级别的隔离,实现了不同任务之间的逻辑分离。
[*]Node隔离:通过Node级别的隔离,确保了计算任务不会因为资源抢占或负载导致控制节点被驱逐。
http://openwrite-whaleops.oss-cn-zhangjiakou.aliyuncs.com/31504_CFF1E177F4D54D37B44997C99720F0F5
集群版本

博世智驾介绍了TTL Controller,这是一种控制job结束后多久被删除的机制。这一功能从Kubernetes v1.23版本开始正式生效。需要留意的是,使用老版本可能会导致Kubernetes集群压力增大,甚至导致Ds worker OOM(Out of Memory),使用时需谨慎考虑。
http://openwrite-whaleops.oss-cn-zhangjiakou.aliyuncs.com/31504_15DC472E7A3C4662A57D6487DC5CA4A4
K8S任务配置

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

[*]任务传参:避免使用大JSON传参,只管使用文件交互,以文件地点作为参数传递,以减少网络传输的负担。
[*]资源配额:对于耗时较长的k8s任务,只管将request和limit配置相同,避免资源超卖导致OOM。
[*]IO控制:对于IO密集型任务,只管避免大量读写本地磁盘,使用CFS(Comprehensive File System),以减少对当前node上其他任务的影响。
http://openwrite-whaleops.oss-cn-zhangjiakou.aliyuncs.com/31504_966902C222214A6D8B6A9E138D83351D
K8S任务隔离&动态优先级

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

[*]支持动态修改master上任务的优先级:答应动态调整任务的优先级,以适应不同的业务需求。
[*]通过node标签和容忍度将不同类型的任务分配到不同节点上:通过这种方式,可以确保不同类型的任务在资源使用上相互隔离,同时保持各自的优先级。
http://openwrite-whaleops.oss-cn-zhangjiakou.aliyuncs.com/31504_B989DA65F21B4BD184F89830D7AB001F
未来规划

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

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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 博世智驾新动力:Apache DolphinScheduler怎样征服数据处理挑战