Airphin —— 调度系统迁移工具
Airphin 是白鲸开源研发的调度系统迁移工具迁移工具, 目的是将 Apache Airflow DAGs 文件转换成 Apache DolphinScheduler Python SDK 定义文件,从而实现用户将调度系统(Workflow orchestration)从 Airflow 迁移到 DolphinScheduler 的目的。
它是一个基于多规则的 AST 转换器,使用 LibCST 来解析和转换 Airflow 的 DAG 代码,其全部规则使用 Yaml 文件定义,并提供了一定的自定义规则扩展能力。
例子
我们通过一个简单的例子,来说明如何使用 Airphin 的。我们截取了 airflow tutorial.py 中的部分代码作为 Airphin 转化的例子,来说明 Airphin 如何逐步完成转化成 dolphinscheduler python sdk。
图 1:airflow tutorial.py 中的部分代码
图 2:Airphin 如何逐步完成转化成 dolphinscheduler python sdk
假设将 airflow tutorial.py 部分内容保存至文件 tutorial_part.py,想要将其转化成 dolphinscheduler python sdk 定义,只需要一行命令就能完成。结果如图 2 所示,因为命令增加了 --inplace 参数,所以 Airphin 会直接将原文件覆盖,如果不需要覆盖原问题,可以不使用 --inplace 参数,Airphin 会新增一个 tutorial_part-airphin.py 文件来保存转化后的内容。
airphin migrate --inplace tutorial_part.py
通过观察,我们发现这次转化分别触发了多条转化规则,包括
将 airflow.DAG 转换成 pydolphinscheduler.core.process_definition.ProcessDefinition,这个规则在第三行(import 语句)以及第六行 DAG context
将 airflow.operators.bash.BashOperator 转换成 pydolphinscheduler.tasks.shell.Shell,这个规则在任务 t1,t2 中都被使用
除了对应的类转化之外,我们需要将类的属性进行转化,如将 airflow.DAG.schedule_interval 转换成了 ProcessDefinition.schedule,同时修改了部分值的内容,如将 timedelta (days=1) 转成 '0 0 0 * * ? *'
最后,我们只需要安装 pydolphinscheduler ,并且将转化后的文件通过 python 运行,就能完成工作流的迁移了,详见 pydolphinscheduler 使用 (https://dolphinscheduler.apache.org/python/main/start.html#installing-pydolphinscheduler)。
# 安装 apache-dolphinscheduler
python -m pip install apache-dolphinscheduler
# 将工作流提交到 dolphinscheduler
python tutorial_part.py
在运行 python tutorial_part.py 时,需要保证 dolphinscheduler API 和 python gateway 服务已经启动,并且开放了对应的端口,详见启动 python gateway service (https://dolphinscheduler.apache.org/python/main/start.html#start-python-gateway-service)。
至此,我们通过一个简单的例子,说明了 Airphin 是如何完成迁移的。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
每日一博 | 得物热点探测技术架构设计与实践
1.概述 说到热点问题,首先我们先理解一下什么是热点? 热点通常意义来说,是指在一段时间内,被广泛关注的物品或事件,例如微博热搜,热卖商品,热点新闻,明星直播等等,所以热点产生主要包含2个条件:1.有限时间, 2流量高聚。 而在互联网领域,热点又主要分为2大类: 1.有预期的热点:比如在电商活动当中推出的爆款联名限量款的商品,又或者是秒杀的会场活动等 2.无预期的热点:比如受到了黑客的恶意攻击,网络爬虫频繁访问,又或者突发新闻带来的流量冲击等 针对于有预期的热点可以通过热点数据预热, 流量限制和异步队列进行处理。但是对于突发性无感知的热点数据流量,往往由于请求过于集中,导致访问数据流量超出的server的正常负载水位,从而出现服务过载不可用的情况,这种问题被称之为热点问题。 2.热点场景 看完关于热点问题的简单介绍,我们已经理解了热点产生的条件是短时间内被频繁访问导致流量高聚,而流量高聚就会出现一系列的热点问题。那被频繁访问的Key,就是我们通常所说的热Key。 接下来我们来看一下哪些场景会导致热点问题以及对应的热Key: MySQL中被频繁访问的数据 ,如热门商品的主键Id Redi...
- 下一篇
路透社:开源软件成为贸易战的重要环节
2 月 27 日,路透社发布了一篇评论《Open-source software braces for trade war》,文章指出,开源软件运动已成为全球创新和生产力增长中前所未有的推动力。然而,不断加剧的地缘政治紧张局势正在危及开源未来的经济贡献。 文章提到, 2019 年美国向电信巨头华为鸣枪示警,拉起贸易战中的科技封锁线。华为手机过往基于 Android 开源操作系统搭建自己的程序与服务,但时任总统特朗普将华为列入黑名单,限制华为使用 Android 谷歌服务和应用商店。路透社认为,此举削弱了华为的海外智能手机业务,并向中国科技行业发出信号,表明美国政府愿意并能够将开源软件武器化。同样在 2019 年,GitHub 开始封锁伊朗、叙利亚和克里米亚的开发者。 面对美国的封锁,中国也有所行动。如 “华为建立了自己的开源操作系统鸿蒙,而 GitHub 现在面临着一家名为 Gitee 的中国竞争对手,后者得到了工业和信息化部的支持。” 让我们从头梳理: 2018 年 7 月 6 日,美国对价值 340 亿美元的中国输美商品征收 25% 的额外关税。 2019 年 5 月 16 日,美...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Docker安装Oracle12C,快速搭建Oracle学习环境
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Hadoop3单机部署,实现最简伪集群
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2配置默认Tomcat设置,开启更多高级功能