一、阿里開源軟件:DataXpython
DataX 是一個異構數據源離線同步工具,致力於實現包括關係型數據庫(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各類異構數據源之間穩定高效的數據同步功能。mysql
二、Apache開源軟件:Sqoopsql
Sqoop(發音:skup)是一款開源的工具,主要用於在HADOOP(Hive)與傳統的數據庫(mysql、postgresql...)間進行數據的傳遞,能夠將一個關係型數據庫(例如 : MySQL ,Oracle ,Postgres等)中的數據導進到Hadoop的HDFS中,也能夠將HDFS的數據導進到關係型數據庫中。shell
TASKCTL採用任務插件機制,以適配不一樣類型的任務,採用TASKCTL任務插件調度做業,具備統一的操做命令,統一的監控方式,統一的運維方式。下面以調度DataX做業類型爲例:數據庫
$ cd {YOUR_DATAX_DIR_BIN} $ python datax.py ./mysql2odps.json
咱們能夠看到調用datax,其實是調用python腳本。apache
所以咱們能夠直接在taskctl中配置做業的xml片斷以下:json
<python> <name>datax_job</name> <progname>datax.py</progname> -- 此處有可能須要定位到cd {YOUR_DATAX_DIR_BIN} <para>./mysql2odps.json</para> </python>
固然,若是要使datax做業類型看起來更加個性化點(或者在插件中適配點什麼)。咱們還能夠datax配置單獨的任務插件,步驟以下:bash
一、編寫調用datax的腳本文件cprundataxjob.sh:運維
#!bin/bash if [ $# -ne 3 ] then echo "Param error !" echo "Usage: $0 progname para expara" exit 126 fi #------------------------------------------------------------------------------ # 第一步: 接收參數 #------------------------------------------------------------------------------ ProgName=$1 Para=$2 ExpPara=$3 #------------------------------------------------------------------------------ # 第二步: 運行JOB,並等待結果 #------------------------------------------------------------------------------ #cd {YOUR_DATAX_DIR_BIN} --至關於TASKCTL中的exppara環境參數 cd ${ExpPara} #python datax.py ./mysql2odps.json python datax.py ${ProgName} #收集datax.py執行結果 retinfo=$? #------------------------------------------------------------------------------ # 第四步: 插件返回 #------------------------------------------------------------------------------ #根據retinfo的信息,返回給TASKCTL if [ ${retinfo} -eq 0 ] then echo "" echo "Run job success !" else echo "" echo "Run job failed !" fi exit ${retinfo}
配置後,把cprundataxjob.sh放到TASKCTL服務端的$TASKCTLDIR/src/plugin/dataxjob/shell/目錄下工具
二、在TASKCTL桌面軟件admin中配置插件以下圖:
三、在designer中編寫模塊代碼以下:
<dataxjob> <name>MainModul_JobNode0</name> <progname>./mysql2odps.json</progname> <exppara>[你的datax安裝路徑]</exppara> </dataxjob>
四、完成模塊代碼的編寫後,以下: