DataWorks搬站方案:Airflow作业迁移至DataWorks
DataWorks提供任務搬站功能,支持將開源調度引擎Oozie、Azkaban、Airflow的任務快速遷移至DataWorks。本文主要介紹如何將開源Airflow工作流調度引擎中的作業遷移至DataWorks上。
支持遷移的Airflow版本
Airflow支持遷移的版本:python >= 3.6.x ?airfow >=1.10.x
整體遷移流程
遷移助手支持開源工作流調度引擎到DataWorks體系的大數據開發任務遷移的基本流程如下圖示。
針對不同的開源調度引擎,DataWorks遷移助手會出一個相關的任務導出方案。
整體遷移流程為:通過遷移助手調度引擎作業導出能力,將開源調度引擎中的作業導出;再將作業導出包上傳至遷移助手中,通過任務類型映射,將映射后的作業導入至DataWorks中。作業導入時可設置將任務轉換為MaxCompute類型作業、EMR類型作業、CDH類型作業等。
Airflow作業導出
導出原理介紹:在用戶的Airflow的執行環境里面,利用Airflow的Python庫加載用戶在Ariflow上調度的dag folder(用戶自己的dag python文件所在目錄)。導出工具在內存中通過Airflow的Python庫去讀取dag的內部任務信息及其依賴關系,將生成的dag信息通過寫入json文件導出。
具體的執行命令可進入遷移助手->任務上云->調度引擎作業導出->Airflow頁面中查看。
Airflow作業導入
拿到了開源調度引擎的導出任務包后,用戶可以拿這個zip包到遷移助手的遷移助手->任務上云->調度引擎作業導入頁面上傳導入包進行包分析。
導入包分析成功后點擊確認,進入導入任務設置頁面,頁面中會展示分析出來的調度任務信息。
開源調度導入設置
用戶可以點擊高級設置,設置Airflow任務與DataWorks任務的轉換關系。不同的開源調度引擎,在高級設置里面的設置界面基本一致如下。
高級設置項介紹:
- sparkt-submit轉換為:導入過程會去分析用戶的任務是不是sparkt-submit任務,如果是的話,會將spark-submit任務轉換為對應的DataWorks任務類型,比如說:ODPS_SPARK/EMR_SPARK/CDH_SPARK等
- 命令行 SQL任務轉換為:開源引擎很多任務類型是命令行運行SQL,比如說hive -e, beeline -e, impala-shell等等,遷移助手會根據用戶選擇的目標類型做對應的轉換。比如可以轉換成ODPS_SQL, EMR_HIVE, EMR_IMPALA, EMR_PRESTO, CDH_HIVE, CDH_PRESTO, CDH_IMPALA等等
- 目標計算引擎類型:這個主要是影響的是Sqoop同步的目的端的數據寫入配置。我們會默認將sqoop命令轉換為數據集成任務。計算引擎類型決定了數據集成任務的目的端數據源使用哪個計算引擎的project。
- Shell類型轉換為:SHELL類型的節點在Dataworks根據不同計算引擎會有很多種,比如EMR_SHELL,CDH_SHELL,DataWorks自己的Shell節點等等。
- 未知任務轉換為:對目前遷移助手無法處理的任務,我們默認用一個任務類型去對應,用戶可以選擇SHELL或者虛節點VIRTUAL
- SQL節點轉換為:DataWorks上的SQL節點類型也因為綁定的計算引擎的不同也有很多種。比如 EMR_HIVE,EMR_IMPALA、EMR_PRESTO,CDH_HIVE,CDH_IMPALA,CDH_PRESTO,ODPS_SQL,EMR_SPARK_SQL,CDH_SPARK_SQL等,用戶可以選擇轉換為哪種任務類型。
注意:這些導入映射的轉換值是動態變化的,和當前項目空間綁定的計算引擎有關,轉換關系如下。
導入至DataWorks + MaxCompute
設置項 | 可選值 |
sparkt-submit轉換為 | ODPS_SPARK |
命令行 SQL任務轉換為 | ODPS_SQL、ODPS_SPARK_SQL |
目標計算引擎類型 | ODPS |
Shell類型轉換為 | DIDE_SHELL |
未知任務轉換為 | DIDE_SHELL、VIRTUAL |
SQL節點轉換為 | ODPS_SQL、ODPS_SPARK_SQL |
導入至DataWorks + EMR
設置項 | 可選值 |
sparkt-submit轉換為 | EMR_SPARK |
命令行 SQL任務轉換為 | EMR_HIVE, EMR_IMPALA, EMR_PRESTO, EMR_SPARK_SQL |
目標計算引擎類型 | EMR |
Shell類型轉換為 | DIDE_SHELL, EMR_SHELL |
未知任務轉換為 | DIDE_SHELL、VIRTUAL |
SQL節點轉換為 | EMR_HIVE, EMR_IMPALA, EMR_PRESTO, EMR_SPARK_SQL |
導入至DataWorks + CDH
設置項 | 可選值 |
sparkt-submit轉換為 | CDH_SPARK |
命令行 SQL任務轉換為 | CDH_HIVE, CDH_IMPALA, CDH_PRESTO, CDH_SPARK_SQL |
目標計算引擎類型 | CDH |
Shell類型轉換為 | DIDE_SHELL |
未知任務轉換為 | DIDE_SHELL、VIRTUAL |
SQL節點轉換為 | CDH_HIVE, CDH_IMPALA, CDH_PRESTO, CDH_SPARK_SQL |
執行導入
設置完映射關系后,點擊開始導入即可。導入完成后,請進入數據開發中查看導入結果。
數據遷移
大數據集群上的數據遷移,可參考:DataWorks數據集成或MMA。
任務上云詳細文檔:https://help.aliyun.com/document_detail/181296.html
原文鏈接:https://developer.aliyun.com/article/783737?
版權聲明:本文內容由阿里云實名注冊用戶自發貢獻,版權歸原作者所有,阿里云開發者社區不擁有其著作權,亦不承擔相應法律責任。具體規則請查看《阿里云開發者社區用戶服務協議》和《阿里云開發者社區知識產權保護指引》。如果您發現本社區中有涉嫌抄襲的內容,填寫侵權投訴表單進行舉報,一經查實,本社區將立刻刪除涉嫌侵權內容。總結
以上是生活随笔為你收集整理的DataWorks搬站方案:Airflow作业迁移至DataWorks的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DataWorks搬站方案:Azkaba
- 下一篇: 阿里云数据中台全新产品DataTrust