DolphinScheduler×T3出行 | 打造车联网一站式数据应用交互体验

点击蓝字 关注我们

e4bedc04b4c2648355b0b1bd876f6d3b.png

deb2f32e5dd6b8b4fa536c70c3116ae5.jpeg

用户案例 | T3 出行

业务挑战

作为一家车联网驱动的公司,T3出行汇聚了“人、车、路、云”各端的海量数据。为了承载如此多元化的数据以更好地释放数据价值,T3出行构建了以Apache Hudi为基础的企业级的数据湖,并在此之上搭建了BI分析,机器学习,数据质量,权限管理等一系列平台,为业务提供强有力的支撑。

同时,T3出行使用Apache DolphinScheduler作为全平台的任务调度载体,任务类型包含Spark、SQL、Shell、Python等,日均任务数量4w+。且随着内部平台越来越多,业务结构越来越复杂,也在倒逼内部对Apache DolphinScheduler适用性、可靠性及能效的不断提升,愿景是实现从数据接入到数据应用的一站式数据应用于交互。

01

解决方案

01

数据湖架构

68131c020e31fcdf290801dc07b56371.png

来自Kafka的流式数据会对接Flink进行流式消费;随后Flink会以低延迟的形式将数据写入到Hudi数据湖中。Apache DolphinScheduler及其他组件以此为基础围“湖”而建,架构整体上保证了数据湖上低延迟的 Pipeline 高效调度与加工。

02

提高适用性

  • 依赖任务逻辑重构

对于非depend-all的依赖任务,以任务实例视图代替工作流实例视图作为依赖判定基准。如果因为一个没有包含目标依赖任务的工作流片段而导致依赖任务判定异常,这显然是不符合预期的。下图以恢复失败场景为例:

c46f77f5244668308ebe9428cf45990f.png

  • 跨Apache DolphinScheduler版本依赖

为了既可以使用高版本Apache DolphinScheduler的新特性,又不对线上低版本Apache DolphinScheduler做变更,同时保证Apache DolphinScheduler高低版本间互通、协同调度,实现了跨Apache DolphinScheduler版本依赖。

f531d85502d1feb81cb09a94b56e6d3e.png

  • ds-client

提供ds-client用于内部平台与DScheduler交互。多数情况下,业务倾向于通过消息触发的方式与调度进行交互,通过ds-client可以将Apache DolphinScheduler核心功能完全释放到平台侧,对于上层业务来说甚至不感知调度的存在。

1adb6cee01b7ba3ea431bff36da29d1c.png

03

提高可靠性

  • 提高SPARK任务容错

  1. 异步获取application id,不再依赖解析任务日志,spark日志级别可设置为INFO以上

  2. 添加针对业务使用"spark.yarn.submit.waitCompletion=false"参数时的容错

  3. 添加针对rm主备倒换期间yarn任务的容错及校验

  • 精细化监控与告警

例如增加服务负载监控与告警;或自定义工作流定义未运行监控告警等。

61efccdce689305865318c6c5a1a8daa.png

ad29e8712f42aba3d21585f7f0a15b51.png

8f7d18ce1ee70903793809a5f1b342f7.png

  • 黑名单与滚动升级

虽然可以依赖Apache DolphinScheduler master/worker容错来类似实现滚动升级,但任务容错的原理是kill&restart,低效且缺失容错监控手段。同时在日常运维时,也缺少对于故障节点的规避措施。对此,T3出行支持了master/worke黑名单管理,并基于此实现了滚动升级。

17d2b44aec7fa41eff68998d840bb1b6.png

04

提高能效

  • 资源中心缓存

对于引用了资源中心文件的任务,在每次执行时都要执行下载操作是冗余的。为此,T3出行实现了资源中心缓存,同一台worker节点上的同个资源中心文件,可以被所有任务反复引用,并保证本地缓存与资源中心文件的一致性。

c5aa3a9a02ffafa074a8a7264c8b96de.png

  • 数据源集成Kyuubi,为使用hive数据源的SQL任务提效 

21ad524c19dbb1a6601cb34b5a40f2bf.png

02

用户收益

  1. 受益于Dolphin Scheduler的高扩展性和开放性,T3在性能、稳定性及易用性方面做了很多创新和优化,使得DS所在公司内所涵盖的业务越来越广,调度需求越来越多。

  2. 过程中真实地帮助业务部门以较低的门槛启动大数据相关需求,同时提升了数据开发部门的研发效率。

  3. 目前,T3出行内部聚焦在如何通过Apache DolphinScheduler实现大数据开发的CI\CD管理,这将使Apache DolphinScheduler一站式开发更加完善。

03

用户简介

T3出行是是由一汽、长安、东风三家央企联合阿里、腾讯、苏宁三家知名互联网公司共同成立的主打B2C的网约车平台,是国内首家基于车联网的出行平台。公司提供的服务包括出租车、专车、拼车、代驾、租车等多种出行方式。

T3出行的宗旨是为用户提供更加安全、便捷和舒适的出行体验,同时也为司机和车主提供更加优质的服务和收益。

参与贡献

随着国内开源的迅猛崛起,Apache DolphinScheduler 社区迎来蓬勃发展,为了做更好用、易用的调度,真诚欢迎热爱开源的伙伴加入到开源社区中来,为中国开源崛起献上一份自己的力量,让本土开源走向全球。

44f8dbf6b9be06a59064e17f447d2147.png

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

5d83a2b169238c247a068303df7bfe0c.png

贡献第一个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开源社区需要您的参与,为中国开源崛起添砖加瓦吧,哪怕只是小小的一块瓦,汇聚起来的力量也是巨大的。

参与开源可以近距离与各路高手切磋,迅速提升自己的技能,如果您想参与贡献,我们有个贡献者种子孵化群,可以添加社区小助手微信(Leonard-ds) ,手把手教会您( 贡献者不分水平高低,有问必答,关键是有一颗愿意贡献的心 )。

867c2098d3313f982320b46ea70d0e87.jpeg

添加社区小助手微信(Leonard-ds) 

添加小助手微信时请说明想参与贡献。

来吧,开源社区非常期待您的参与。

< 🐬🐬 >

更多精彩推荐

☞PyDolphinScheduler 发布 4.0.3 版本,修复无法提交文件到资源中心的问题

☞优秀用户案例有奖征集 | 活动火热开启,快来投稿!

☞Apache DolphinScheduler 从 1.3.4 升级至3.1.2 过程中的问题记录及解决方案

☞Apache DolphinScheduler 3.1.5 发布,修复工作流实例甘特图查看异常等问题

☞去年办了这么多场Meetup都没有你,2023年赶紧安排起来!

☞为什么工作流中的数据质量要尽早验证,经常验证?

☞【每周 FAQ】第二期 | 回答你关于 Apache DolphinScheduler 的疑问

点击阅读原文,点亮Star支持我们哟587fb8d682592a168bb5696a30b2c1b1.png

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

1 分钟给 Siri 升个级!从智Z变身 ChatSiri!

原文链接&#xff1a;https://forum.laf.run/d/79/17 众所周知&#xff0c;Siri 是一个智 Z&#xff01;那么如果能接入大火的 chatGPT&#xff0c;是不是就会从智 Z 变成人工智能&#xff1f;&#xff01; 众所周知&#xff0c;Laf 是一个集函数、数据库、存储为一体的云开发…

第五章_Redis事务

是什么 官网 能做什么 一个队列中&#xff0c;一次性、顺序性、排他性的执行一系列命令 Redis事务 VS 数据库事务 1 单独的隔离操作 Redis的事务仅仅是保证事务里的操作会被连续独占的执行&#xff0c;redis命令执行是单线程架构&#xff0c;在执行完事务内所有指令前是不可…

消息队列kafka及zookeeper机制

目录 一、zookeeper 1、zookeeper简介 2、zookeeper特点 3、zookeeper工作模式及机制 4、zookeeper应用场景及选举机制 5、zookeeper集群部署 ①实验环境 ②安装zookeeper 二、消息队列kafka 1、为什么要有消息队列 2、使用消息队列的好处 3、kafka简介 4、kafka…

【云原生】Kubernetes(k8s)之容器的探测

Kubernetes&#xff08;k8s&#xff09;之容器的探测 一、探测类型及使用场景1.1、startupProbe&#xff08;启动探测&#xff09;1.2、readinessProbe&#xff08;就绪探测&#xff09;1.3、livenessProbe&#xff08;存活探测&#xff09; 二、检查机制三、探测结果四、容器探…

MySQL - 基于SSL安全连接的主从复制

目录 &#x1f341;主从复制的原理 &#x1f341;部署master &#x1f341;部署slave &#x1f341;测试SSL主从复制 &#x1f990;博客主页&#xff1a;大虾好吃吗的博客 &#x1f990;MySQL专栏&#xff1a;MySQL专栏地址 生产环境中一台mysql主机存在单点故障&#xff0c;所…

SWCF QA集锦待查收 (车联网与V2X、自动驾驶、5G毫米波、射频测试、频谱监测与规划等)

感谢大家的观看与支持&#xff01;我们为大家整理了本次发布会中的演讲资料&#xff0c;汇总了直播过程中的热点问题并请讲师进行了详细解答&#xff0c;在此整理分享给大家&#xff01; 演讲Q&A Q&#xff1a;目前5G天线支持最大的MIMO是多少&#xff1f; A&#xff1a;…

计算机:理解操作系统:内存篇(上)

内存篇 1. 什么是内存2. C/C内存模型2.1 代码段和数据段2.2 堆和栈 本节是操作系统系列教程的第三篇文章&#xff0c;属于操作系统第一章即基础篇&#xff0c;在真正开始操作系统相关章节前在这一部分回顾一些重要的主题&#xff0c;算是温故知新吧&#xff0c;以下是目录&…

ICMP隧道技术实现防火墙穿透

1.在mac os的虚拟机里准备三台kali 三台主机ip地址分别是 192.168.1.15&#xff0c;192.168.1.16&#xff0c;192.168.1.17&#xff0c; 为方便描述 依次把他们暂且命名为主机A,主机B,主机C 2.在主机C 上打开终端&#xff0c;输入 cd /usr/local/src 然后新建一个hello.txt 文…

深入浅出JS定时器:从setTimeout到setInterval

前言 当谈到 JavaScript 编程语言最基本的概念时&#xff0c;定时器就是一个必须掌握的知识点。在编写网站时&#xff0c;你经常会遇到需要在一定时间间隔内执行一些代码的情况。这时候&#xff0c;JavaScript 定时器就可以派上用场了。 什么是定时器&#xff1f; JS 定时器是…

Mybatis(三)

1、mybatis中的连接池以及事务控制 原理部分了解&#xff0c;应用部分会用 mybatis中连接池使用及分析 mybatis事务控制的分析2、mybatis基于XML配置的动态SQL语句使用 会用即可 mappers配置文件中的几个标签&#xff1a; <if> …

Linux远程连接虚拟机超时,且ip地址找不到问题解决

ip地址虚拟机自动更改&#xff1a; 原因&#xff1a;Linux没有正常关机 解决&#xff1a;从虚拟机在自己电脑上的文件地址中bin目录下&#xff0c;前面几个以.lck的文件全部删除 Linux远程连接虚拟机超时&#xff1a; 原因可能跟上面是一样的&#xff0c;IP地址自动修改之后自…

交互式电子沙盘数字沙盘大数据系统开发第8课

交互式电子沙盘数字沙盘大数据系统开发第8课 这次我们完成的功能为拖动一个外部的UI对象到球球上&#xff1a; private void Button_PreviewMouseMove(object sender, MouseEventArgs e) { if(e.LeftButton MouseButtonState.Pressed) DragDr…

为docker安装图形界面和配置远程桌面连接

由于远程桌面访问必须要打开端口3389&#xff0c;所以在启动docker中ubuntu系统的时候要首先将linux系统的3389端口映射出来 docker run -tid -p 3389:3389 --name ceshi --privilegedtrue ceshi /bin/bash 接下来进入到ubuntu中 docker exec -it ceshi /bin/bash 首先安装X…

扬帆优配|TMT板块密集发布减持计划 火爆行情潜藏估值难以匹配隐忧

4月以来&#xff0c;多家上市公司发表股东减持公告&#xff0c;其中一季度大热的TMT&#xff08;科技、媒体和电信&#xff09;板块的股东减持最为引人注目。 32只TMT股拟减持上限占比超1% 到4月18日&#xff0c;4月以来已有61家TMT板块上市公司发布减持方案。从拟变动数量上限…

增广拍卖——二跳页下的拍卖机制探索

1. 引言 本文提出的方案已被WSDM 2023接收&#xff0c;论文&#xff1a;Boosting Advertising Space: Designing Ad Auctions for Augment Advertising&#xff0c; 下载&#xff1a;https://dl.acm.org/doi/abs/10.1145/3539597.3570381 信息流产品为了保障用户体验通常会严格…

程序地址空间(上)

目录 &#xff1a; 1.C/C程序地址空间回顾&#xff08;C语言&#xff09; 2.通过一段代码&#xff08;引出进程虚拟地址空间&#xff09; 3.进程虚拟地址空间是什么 ------------------------------------------------------------------------------------------------------…

CCF-CSP真题《202303-1 田地丈量》思路+python,c++满分题解

想查看其他题的真题及题解的同学可以前往查看&#xff1a;CCF-CSP真题附题解大全 试题编号&#xff1a;202303-1试题名称&#xff1a;田地丈量时间限制&#xff1a;1.0s内存限制&#xff1a;512.0MB问题描述&#xff1a; 问题描述 西西艾弗岛上散落着 n 块田地。每块田地可视为…

在 FPGA 上如何实现双线性插值的计算?

作者 | 殷庆瑜 责编 | 胡巍巍 目录 一、概述 二、What&#xff1f;什么是双线性插值&#xff1f; 二、Why&#xff1f;为什么需要双线性插值&#xff1f; 三、How&#xff1f;怎么实现双线性插值&#xff1f; 关键点1 像素点选择 关键点2 权重计算 升级1 通过查表减少…

城市地下综合管廊安全运营与智慧管控的分层架构研究

安科瑞 李亚俊 1、引言 1833年&#xff0c;市政管线综合管廊在巴黎城市地下建成至今&#xff0c;经过百年来的探索、研究、改良和实践&#xff0c;法国、英国、德国、俄罗斯、日本、美国等发达国家的管廊规划建设与安全运维体系已经日臻完善&#xff0c;截止目前&#xff0c;…

动态内存管理【下篇】

文章目录 ⚙️5.C/C程序的内存开辟⚙️6.柔性数组&#x1f514;6.1.柔性数组的特点&#x1f514;6.2.柔性数组的使用 ⚙️5.C/C程序的内存开辟 C/C程序内存分配的几个区域&#xff1a; &#x1f534;1.栈区&#xff08;stack&#xff09;&#xff1a;在执行函数时&#xff0c;函…