TASKCTL 對開源項目DataX和Sqoop等ETL工具的支撐

一、阿里開源軟件: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>

四、完成模塊代碼的編寫後,以下:

相關文章
相關標籤/搜索