最新要闻
- 当前热门:5 月份智能手机出货量 2519.6 万部,同比增长 22.6%
- 玉米控旺作用大,但这4个环节把握不好,会得不偿失,别大意-天天精选
- 端午假期济源文旅消费市场加速升温
- 刚刚,湖北省人才集团揭牌成立 30亿元规模长江优企人才基金启动_天天快消息
- 全球速读:工业和信息化部将实施“专精特新”中小企业上市培育工程
- 热推荐:当前热点-天天头条:新消息丨即时焦点:世界看点:智利进口硼酸商品报价动态(2023-06-25) 天天热议 最新资讯|每日视讯-今日快讯
- 组图| “世界互联网大会数字文明尼山对话”在曲阜开幕
- 5 月份智能手机出货量 2519.6 万部,同比增长 22.6%_全球简讯
- 【全球热闻】美方以涉芬太尼问题逮捕和起诉中国公民和企业,我驻美使馆提出严正交涉和强烈抗议
- 《江湖十一》杀意有什么用?杀意作用一览
- 最高法:新型毒品犯罪上升 非接触式犯罪渐成毒品贩运新常态
- 天天热点评!端午出行数据环比走弱!旅游酒店板块低开低走
- 2023养老金上涨3.8%各地公布养老金补发金额?55-69岁能补800元?|全球今热点
- 道生天合递表沪主板,主营业务毛利率存波动,客户集中度较高-环球时快讯
- 每日消息!贝克微递表港交所,比亚迪参股,依赖两大分销商
- A股三大指数均跌超1% 电力股逆市大涨 AI概念股大幅下挫 360触及跌停
手机
焦点滚动:烟草员工连年亏福利,公积金91万,准备换别墅
加盟快递点这碗饭,好像不香了
- 焦点滚动:烟草员工连年亏福利,公积金91万,准备换别墅
- 加盟快递点这碗饭,好像不香了
- 俄罗斯瓦格纳叛乱事件引发油市担忧 国际油价小幅反弹
- 激增!德国1-5月光伏装机新增4.97GW
- 到深圳宝体看约基奇!“国际团结杯”6月28日开票_快看点
- 【环球时快讯】打车软件显示“阴曹地府”,扬州交运局:假地名,已督促下架
家电
世界视讯!日均调度 10W+ 任务实例,DolphinScheduler 在蔚来汽车一站式数据治理开发平台的应用改造
大家好我是张金明,在蔚来汽车担任大数据平台研发工程师。这次和大家分享的是 Apache DolphinScheduler 在蔚来汽车一站式数据治理开发平台的应用和改造,接下来我将从背景、应用现状和技术改造三个方面去分享一下。
背景
业务痛点
在蔚来汽车构建一个统一的数据中台之前,我们面临这样一些业务痛点和困境:
(相关资料图)
数据缺乏治理,数仓不规范、不完整
- 没有统一的数据仓库,无全域的数据资产视图
- 存在数据孤岛;
工具散乱,用户权限不统一、学习成本高
- 用户需要在多个工具之间切换,导致开发效率降低
- 底层运维成本高;
数据需求响应周期长,找数难、取数难
- 无沉淀的数据资产与中台能力,重复处理原始数据;
- 业务数据需求从提出到获取结果的周期长
基于这些痛点和问题,我们构建了一个公司层面的业务中台,内部叫做 DataSight。
我们可以看到,最底下是我们的一些基础组件;往上一层,这些基础组件主要是支撑了一些数据接入与开发的模块;再向上是我们的数据治理,以及数据资产与应用层。其中,Apache DolphinScheduler 这个调度器在公司主要应用于交互的模块,就是数据开发和数据运维两个模块。
数据开发中,调度任务开发主要就是用到了 Apache DolphinScheduler,通过 API 和调度器进行交互。
应用现状
作业现状
目前,我们的机器共有 9 台,分别是两台 Master机器,是8c 和 32G;六台 Worker 机器,16c 和 64G,以及一台 Alert 机器,8c 和 32G。
版本是更新到了 Apache DolphinScheduler 2.0.7,后续的目标是升级到 2.0.8 版本,2.0 版本已经能够支撑我们的业务了,整体的稳定性还是比较好的。
我们其实是从 2022 年 4 月份开始才真正地在线上运行 Apache DolphinScheduler,直到今天大概运行了一年一个月多的时间,日均的调度工作流实例大概在 4w+,日均调度任务实例大概在 10w+ 左右,主要节点是 Spark 节点、SparkSQL、prestoSQL、Python 和 Shell,其中 Spark 节点占比约 70%。
目前这些节点已经能够支撑我们的大部分业务,后续我们可能会把 DolphinScheduler 自带的一些节点加到我们的数据开发模块里面来。
技术改造
为了适应我们业务的需求,我们对 Apache DolphinScheduler 进行了一些技术改造。首先是稳定性方面的工作。
稳定性
- 滚动重启+黑名单机制+精准路由
这个改造是因为我们遇到的一些痛点,首先,大家知道,DolphinScheduler 的 Worker 重启机制在重启时会把所有的任务给 kill 掉,然后去Restart 这个任务,把这个 kill 的任务分发到新的 Worker 机器上。这样会导致任务执行时间较长。这不符合我们的预期。
同时,我们也无法在特定的 Worker 上进行验证任务。
对此,我们的解决方案就是滚动重启,在重启某台机器之前先下线这台机器,也就是加上黑名单,这样的话,Master 机器就不会给这台下已经下线的机器去分发 worker 任务。这台机器会在上面的任务全部处理完毕后自动上线,也就是移出这个黑名单。接下来所有的 woker 节点都按照此种方式重启,达到平滑重启的目的。
这样做的好处在于不会阻塞每个任务的执行,集群在重启的时候稳定性能得到大幅提升。
另外,我们还做了精准路由的工作。也就是在任务名后加特定后缀,实现精准路由到某台机器上。
如图所示,我们在这个任务后面加一个 specific dispatch-worker02 的话,那这个任务一定会被分配到Worker02 这台机器上去。这样的好处在于,假设我们想要去某一个功能点,我们只需要把某一台 Worker 机器下线重启,需要测试的功能点按照这个方式就一定能够打到这台特定的机器上去,实现最小范围的灰度,有助于提高稳定性。
- 优化存储
在存储方面,我们痛点也很明显,就是 process instance和task instance 这两张表数据量是比较大的,由于我们每天的数据量比较大,目前已经达到了千万级别,造成 MySQL 的存储压力比较大。另外,部分 SQL 执行时间长,业务响应变慢;而且 DDL 时会造成锁表,导致业务不可用。
针对这些问题,我们的解决方案包括去梳理所有的慢 SQL,然后去添加合适的索引。与此同时,还有降低查询频率,特别是针对依赖节点。因为我们知道依赖节点每 5 秒钟查询一次数据库,所以我们根据依赖节点所在的 tasks instance ID 去做一个“打散”,偶数节点每 30 秒查询一次,奇数节点每 30 秒查询一次,把他们分开来降低对整个数据库的查询压力。
另外,为了减轻表数据量大的问题,我们也做了一个定期删除的策略,以及定时同步历史数据的策略。
定时删除就是我们利用 DolphinScheduler 自身的调度能力建立两个工作流去删除这两张表,保证 process instance 这张表保留两个月的数据,task instance 这张表保留一个月的数据。同时在删表的时候,我们要注意在非业务高峰期时去做这个动作,每次删表的时候,batch size 要控制好,尽量不要影响线上的任务。
定时同步历史数据,就是我们针对 process instance 这个表,依据 schedule time 按年去分表;针对 task instance 这张表,按 first submit time 按月去分表。
- Spark 任务优化
我们提交 Spark 任务的方式是通过 Sparks Submit 去提交的,它的缺点在于提交 Spark 任务后,常驻机器,导致机器内存过大,会有机器宕机的风险,worker 的运行效率较低。
我们优化了 Spark 任务提交和运行的逻辑,就是通过 Spark Submit 提交的时候添加 spark.yarn.submit.waitAppCompletion=false
这个参数,这样任务提交完以后这个进程就消失了。考虑到要保证 worker 机器任务的线程和 Spark 和 Yarn 上的状态一致,我们间隔一定时间查询 Spark 任务状态,如图所示:
这里是一个 while true 循环,首先去判断这个任务是否超时。如果任务已经超时就会结束这个 Spark 任务,同时会 kill 掉集群上那个真正在跑的任务。
如果任务没有超时,我们会去获取任务的状态,如果任务状态是终止状态,就直接跳出这个循环,否则会间隔一定的时间,比如 30 秒,再继续这个 while true 循环。这种方式让整个 worker 机器所能承载的 Spark 任务大大增加。
易用性
接下来再看一些我们在易用性方面的改造工作吧!
- 依赖节点优化
我们的依赖节点之前的痛点在于,它的使用规则不太符合用户的需求,比如之前是单次查询不到上游即失败;日志内容显示信息不全,对用户不友好;用户无法自定义依赖范围。
针对这些问题,我们做的工作包括修改了查询逻辑为继续等待,就是说当这个任务查询不到上游的时候,我们会继续等待,而不是直接失败。同时我们会也有个极端的保证,就是这个依赖节点超过 24 小时以后就让它自动失败,然后给用户发一个报警。
针对依赖节点,我们也做了强制成功这样一个小trick,并支持用户自定义依赖范围。
另外,我们还优化了依赖节点的日志输出,当用户点击依赖节点的日志的时候,可以比较清楚地看到依赖的上游所在的空间,这个空间内任务所对应的维护人是什么,以及工作流节点是什么和完成状态,让用户可以点对点地找到上游的同学,快速解决这个依赖节点卡住的问题。
- 补数任务优化
针对补数之前的痛点,比如补数任务没有进度提示,并行补数流程实例不严格按照时间顺序,停止并行补数任务逻辑比较麻烦等问题,我们的解决方案包括并行任务引入线程池,也就是把任务按照时间顺序一个一个抛到新建的线程池里,执行完毕以后退出这个线程池,然后再放一个新的进来,达到并行补数的状态。同时,执行时间按递增的顺序。
当我们想停止这个补数任务的时候也比较简单,直接把这个线程池 shutdown 就行。
- 多 SQL 执行
最后是关于多 SQL 执行方面的优化。我们之前面临的痛点包括:
- 多 SQL 需要多节点执行浪费集群资源;
- 自定义环境变量无法实现;
- 无法跟踪 SparkSQL 的运行日志。
我们的解决方案包括拆分这条 SQL,支持多条 SQL 同时执行。
与此同时,我们可以在 SparkSQL 任务执行之前拦截执行select engine_id() as engine_id
语句。如上图所示,对于 SQL 1 和 SQL 2,之前我们会在两个任务里面去放着,但是现在可以在一个任务节点里面放下来,它会执行两次。同时我们可以清晰地看到这个 SparkSQL 所在的 application ID 是什么,用户能够清晰地根据这个 application ID 找这个业务所在的地址,了解这个作业的进度。
本文由 白鲸开源 提供发布支持!
关键词:
-
世界视讯!日均调度 10W+ 任务实例,DolphinScheduler 在蔚来汽车一站式数据治理开发平台的应用改造
![file](https: img2023 cnblogs com other 2685289 202306 2685289-2
来源: 世界视讯!日均调度 10W+ 任务实例,DolphinScheduler 在蔚来汽车一站式数据治理开发平台的应用改造
【环球时快讯】mybatis中数据库连接池切换到更优秀的连接池上
当前热门:5 月份智能手机出货量 2519.6 万部,同比增长 22.6%
淳中科技:6月26日公司高管付国义减持公司股份合计9.5万股 全球微速讯
【速看料】1000元京豆能提现吗?京豆有什么用?
中马传动3涨停_热议
江西下达51.87亿元!全部用于……
精心呵护“城市微细胞” 《北外滩街道开店指南》上线发布
第二届“自由?向尚”国潮年轻力大会在上海大世界启动 热闻
苏州银行的利润密码_世界动态
报道:桃江县武潭镇:端午假期不打烊 人居环境整治再发力
玉米控旺作用大,但这4个环节把握不好,会得不偿失,别大意-天天精选
【环球快播报】“引领低碳生活新时尚,争做文明虹口人” 虹口区启动垃圾分类创意大赛等系列活动
都是千古绝对|世界快消息
端午假期济源文旅消费市场加速升温
焦点滚动:烟草员工连年亏福利,公积金91万,准备换别墅
焦点热讯:大连港迎来全球最大集装箱船“地中海尼古拉马斯特罗”轮
感觉Ta一直看我,是喜欢我还是自作多情?
每日播报!骁龙8 Gen2 200W快充!iQOO 11S官宣:7月4日见
香喷喷的烤全羊,原来要经过这么多道工序_环球观天下
加盟快递点这碗饭,好像不香了
俄罗斯瓦格纳叛乱事件引发油市担忧 国际油价小幅反弹
天天精选!1013事件o泡果奶链接(1013事件O泡果奶)
激增!德国1-5月光伏装机新增4.97GW
环球信息:朗特智能(300916):6月26日技术指标出现看涨信号-“红三兵”
永州水文科学应对超警戒水位洪水
吉利缤瑞手机互联(吉利远景x3怎么手机互联?)-焦点观察
速读:齐铁法院组织开展“过‘政治生日’牢记入党初心”主题党日活动
雄安新区党工委书记张国华与国家开发银行行长谭炯一行举行工作座谈
公示中!2023年贵州省预制菜产业发展重点项目拟支持名单公布
临县交警进驾校开展“一盔一带”交通安全宣传活动
震惊!北京某医院拒绝家属陪护,专业护工接手是否违反相关规定?
circle怎么读英语_circle怎么读
西南大学免费师范生2020年录取分数线_每日聚焦
刚刚 A股又上热搜!新能源赛道股午前爆发 热门板块延续大跌 环球看热讯
最全汇总!31省区市高考分数线已全部公布
苹果公司或将于今年秋季发布三款苹果手表新品
到深圳宝体看约基奇!“国际团结杯”6月28日开票_快看点
信息:合同诈骗担保人需要承担什么 环球讯息
福彩3D23167期胆码定位预测_百事通
紫阳县高滩镇“四到位”抢抓夏季作物田间管理
商丘梁园区:消防宣传“赶大集” 安全知识送到家
中国石化获浅层常压页岩气突破 当前消息
刚刚,湖北省人才集团揭牌成立 30亿元规模长江优企人才基金启动_天天快消息
航天军工行业周报(第二十五周):军品转民用机会有望催生板块行情_当前热讯
天天微速讯:三祥新材:宁德文达镁铝一体化铸造业务已在新能源电池等领域实现量产
热文:宜昌夷陵城市发展11.75亿元竞得夷陵东城片区4宗地块
美国甩给中国的“毒锅”,我们不背!|热点评
热头条丨北京一线城市北京个人京牌牌出租三年费用多少一览
全球快资讯:皖能电力:“十四五”期间公司所有60万千瓦及以上煤电机组完成灵活性改造
全球速读:工业和信息化部将实施“专精特新”中小企业上市培育工程
无纸化测试!咸丰一学校期末考试“闯”出新花样
热推荐:当前热点-天天头条:新消息丨即时焦点:世界看点:智利进口硼酸商品报价动态(2023-06-25) 天天热议 最新资讯|每日视讯-今日快讯
美元/日元亚盘技术分析(2023年6月26日)_世界快讯
健合集团让年轻人“懒系养生”,动动嘴就好_全球实时
【环球热闻】中国20岁小将殷若宁夺得高尔夫女子大满贯首冠
视讯!明起,北方新一轮高温南方新一轮降雨
最资讯丨三亚有什么旅游景点(三亚有哪些必去景点)
蓝色协议错误代码999怎么解决 蓝色协议999错误代码解决办法 世界新消息
铁建重工隧道装备再获两项殊荣
当前看点!双证在职研究生有哪些?一文罗列清楚内容!
动态焦点:债市日报:6月26日
学生资助申请书范文(5篇)-世界即时看
组图| “世界互联网大会数字文明尼山对话”在曲阜开幕
齐齐哈尔梅里斯达斡尔族区发改工信科技局重点企业政商交流座谈会召开 世界简讯
莫斯科市等多地宣布解除!俄防长绍伊古现身前线!反攻行动是“闪电战”?乌防长连说“不是” 看点
资讯推荐:纯粹驾控性能轿跑宝马M4该怎么选?入门版本配置也很高
传媒行业周报:端午档票房位列影史第二 直播电商平台618表现亮眼
ST世茂:控股股东已增持980万股公司股份 当前报道
2023年中国内地电影总票房破250亿元
5 月份智能手机出货量 2519.6 万部,同比增长 22.6%_全球简讯
首个全国小学生篮球联赛 厦门篮球小将将代表福建出战
酒后反胃呕吐怎么缓解_猫反胃呕吐是什么原因
【环球时快讯】打车软件显示“阴曹地府”,扬州交运局:假地名,已督促下架
全球聚焦:杜康:黄金反弹到位,欧盘1932现价空!
特别提醒!本周二晚上至周三早上,天通苑部分地区将停水
保利越秀和樾天汇预计六批次入市,即将加推建面约99-173㎡3-4房 环球快资讯
《暗黑破坏神4》冰法开荒威能怎么选择 冰法开荒威能选择推荐_天天滚动
世界热讯:楢山的读音_楢
【全球热闻】美方以涉芬太尼问题逮捕和起诉中国公民和企业,我驻美使馆提出严正交涉和强烈抗议
【世界热闻】天歌原创歌剧《洛神》首秀
人造反义词_人造反式脂肪
环球快播:海南三亚挂牌出让2宗地 含首宗“先租后让”土地
天风证券:给予五洲特纸买入评级|全球快播报
海贼王:伊姆已获得永恒的生命,手握天王掌管世界800年 焦点速看
于涵:沪指有望先抑后扬 重新收复3200点|微策略
南亚新材跌8.5% 上市即巅峰超募8.7亿光大证券保荐|当前焦点
江苏宿迁:端午节期间宿迁铁路运输畅通有序 观点
陕西多地新一轮HPV疫苗预约即将开始
北京银行因房地产等多项业务违规被罚4830万-全球热议
鸿富瀚涨13.83%
唐人神获4家机构调研:公司生猪产业主要发展方向是布局猪肉消费区域,目前产能主要集中在湖南省、广东省等区域,未来公司生猪产能重点发展区域为广东省、广西省、海南省(
世界最资讯丨国乒小将用冠军庆祝生日!瑞典赛女双决赛孙颖莎陈幸同组合摘冠
服务机器人公司汉特云获得数千万元Pre-A轮融资|最新消息
每日资讯:分享大乐透23072期晒票,若想比别人贪心,请比别人用心
Tesla AI称超级计算机Dojo将于7月投入生产 全球简讯
《江湖十一》杀意有什么用?杀意作用一览
最高法:新型毒品犯罪上升 非接触式犯罪渐成毒品贩运新常态
万人说新疆|我在新疆讲脱口秀,让幽默成为了解的入口_环球热推荐
3999元起 vivo X90s预售:最强悍的天玑手机 重点聚焦