1. 程式人生 > >開源作業排程工具實現開源的Datax、Sqoop、Kettle等ETL工具的作業批量自動化排程

開源作業排程工具實現開源的Datax、Sqoop、Kettle等ETL工具的作業批量自動化排程

1、阿里開源軟體:DataX

        DataX 是一個異構資料來源離線同步工具,致力於實現包括關係型資料庫(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各種異構資料來源之間穩定高效的資料同步功能。(摘自百科)

2、Apache開源軟體:Sqoop

Sqoop(發音:skup)是一款開源的工具,主要用於在HADOOP(Hive)與傳統的資料庫(mysql、postgresql...)間進行資料的傳遞,可以將一個關係型資料庫(例如 : MySQL ,Oracle ,Postgres等)中的資料導進到Hadoop的HDFS中,也可以將HDFS的資料導進到關係型資料庫中。(摘自百科)

3、Kettle開源軟體:水壺(中文名)

Kettle是一款國外開源的ETL工具,純java編寫,可以在Window、Linux、Unix上執行,資料抽取高效穩定。(摘自百科)

上面三個開源ETL工具的簡介都摘自百科內容,個人kettle用的比較多,其他兩個用的比較少。其實不管是開源還是商用ETL工具都自帶了作業排程,但其從使用的靈活性和簡易性來說,那就不如第三方專業做批量作業排程的工具了。既然都是工具,是為了方便我們使用人員,那幹嘛不使用更好的工具來減輕我們的工作量,從而讓我們將精力更多的投入到業務本身去呢?這裡就給大家分享一個第三方開源批量作業自動化工具TASKCTL(開源社群地址:https://www.oschina.net/p/taskctl),看TASKCTL如何輕鬆實現開源ETL工具Datax、Sqoop、Kettle等的作業批量排程。廢話不多說,直接上乾貨。

TASKCTL採用任務外掛驅動機制,因此,可支援各種儲存過程、各種指令碼、以及諸如Datastage\Informatica\kettle等各種ETL工具任務,可以完成序列、並行、依賴、互斥、執行計劃、定時、容錯、迴圈、條件分支、遠端、負載均衡、自定義條件等各種不同的核心排程功能。

下面以排程DataX作業型別為例:

$ cd {YOUR_DATAX_DIR_BIN}
$ python datax.py ./mysql2odps.json

我們可以看到呼叫datax,實際上是呼叫python指令碼。

因此我們可以直接在taskctl中配置作業的xml片段如下:

<python>
    <name>datax_job</name>
    <progname>datax.py</progname>   -- 此處有可能需要定位到cd {YOUR_DATAX_DIR_BIN}
    
<para>./mysql2odps.json</para> </python>

當然,如果要使datax作業型別看起來更加個性化點(或者在外掛中適配點什麼)。我們還可以datax配置單獨的任務外掛,步驟如下:

1、編寫呼叫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/目錄下

2、在TASKCTL桌面軟體admin中配置外掛如下圖:

3、在designer中編寫模組程式碼如下:

<dataxjob>
    <name>MainModul_JobNode0</name>
    <progname>./mysql2odps.json</progname>
    <exppara>[你的datax安裝路徑]</exppara>
  </dataxjob>

4、完成模組程式碼的編寫後,如下:

 

相關推薦

開源作業排程工具實現開源DataxSqoopKettleETL工具作業批量自動化排程

1、阿里開源軟體:DataX         DataX 是一個異構資料來源離線同步工具,致力於實現包括關係型資料庫(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各種異構資料來源之間穩定高效的資料同步功能。(摘自百科) 2、Apac

[開源]基於goapp+xterm實現webssh-網頁上的SSH終端linux管理工具(golang)

 簡析 基於goapp+xterm實現webssh-網頁上的SSH終端,linux管理工具。 開源地址見文末。   特性 在網頁上實現一個SSH終端。從而無需Xshell之類的模擬終端工具進行SSH連線。 可以對互動命令進行審計、記錄 在頁面上按一個鍵,就能開啟一個webssh,並且自動登

Python集成網絡診斷小工具(含有ping,tracert,tcping工具

Python wxpython 集成 開發背景: 之前在一家IDC公司實習,負責服務器售後方面的,經常要使用ping,tracert,tcping等命令做些初步的診斷,判斷服務器問題出在哪方面。於是就想集成這些常用的命令或工具到一個GUI界面中,實現一鍵調用。(PS:當然公司有更好的集成工具,我只

黑馬論壇日誌專案(hivesqoopflumemysql)

一、準備工作 1、專案描述 通過對黑馬技術論壇的apache common日誌進行分析, 計算論壇關鍵指標,供運營者決策。2、資料情況 每行記錄有5部分組成: 訪問ip 、訪問時間 、訪問資源【跟著兩個訪問的Url】、訪問狀態 、本次流量 擷取部分資料如下:

HTTP模擬工具【C#/Winform源碼】Json綁定TreeView控件使用了MetroModernUIRestSharpDapper.NetNewtonsoft.JsonSmartThreadPool這幾個主要開源框架

type form num -m 請求 resource dap bool dev HTTP模擬工具 開發語言:C#/Winform開發工具:Visual Studio 2017數據庫: SQLite使用框架:界面-MetroModernUI

[編譯] 6開源兩個簡單且有用的安卓APP命令行開發工具和nRF51822命令行開發工具

android 關註 eabi ref 文件 不存在 alt stdin vim 星期四, 27. 九月 2018 12:00上午 - BEAUTIFULZZZZ 一、前言 前幾天給大家介紹了如何手動搭建安卓APP命令行開發環境和nRF51822命令行開發環境,中秋這

Facebook開源Linux核心元件和工具:BPFBtrfsNetconsdCgroup2PSIOomd

內容摘要: 作者:Tejun Heo(Facebook的軟體工程師)和Thomas Connally。 Facebook工程文化的一個組成部分始終是我們的開發團隊致力於開發開源解決方案,以解決實際的生產問題,並應對現代大規模雲端計算的重大挑戰。今天,我們宣佈了一套解決重要

java使用google開源工具實現圖片壓縮

前言 作為靠譜的java服務端程式設計師,圖片這個事情一直是個頭疼的事情。 現在很多網站上,都有上傳圖片這個功能,而圖片對於現在的很多手機來說,拍攝出來的都是高清圖片,解析度也是相當的高,當然佔用的儲存空間也就大了。問題也就產生了,你每個使用者都上傳個3M的圖片怎麼辦?

[編譯] 6開源兩個簡單且有用的安卓APP命令列開發工具和nRF51822命令列開發工具

星期四, 27. 九月 2018 12:00上午 - BEAUTIFULZZZZ 一、前言 前幾天給大家介紹瞭如何手動搭建安卓APP命令列開發環境和nRF51822命令列開發環境,中秋這幾天我把上面篇文章的操作流程全部做成了shell指令碼,使得可以讓其他人簡單執行下指令碼、就能夠直接建立綠色開發環境,豈

gitlab程式碼管理開源工具--安裝遷移升級

需求:現在公司使用的gitlab版本號為8.6.1,伺服器在阿里雲平臺上面,要求將原始碼從阿里雲伺服器上面遷移到本公司內部伺服器 1. 檢視gitlab版本 [[email protected] ~]# more /opt/gitlab/embedded/ser

推薦一些熱門的開源網站UI圖片資源網站線上工具網站

    本文將推薦國內外最熱門的開發者網站,各大網站提供無數的開發者技術、教程以及原始碼等內容,幫助熱愛開發的朋友們學習一些新的開發技術。除此之外,還將分享一些熱門的開發工具、UI資源等網站。網站不以熱度排名,僅供開發者參考。 · 程式碼 · 原始碼 全球最大同

程式設計師收集的日常使用書籍網站開源工具

技術站點Hacker News:非常棒的針對程式設計的連結聚合網站Programming reddit:同上MSDN:微軟相關的官方技術集中地,主要是文件類infoq:企業級應用,關注軟體開發領域OSChina:開源技術社群,開源方面做的不錯哦cnblogs,51cto,cs

小巧玲瓏的開源排程框架Azkaban3.0下載編譯安裝及使用詳細文件

一、下載 下載地址:https://github.com/azkaban/azkaban/archive/3.38.0.tar.gz 二、編譯 Azkaban3.x官方沒有提供直接的安裝包,需要下載原始碼後進行編譯 $>cd $AZKABAN_SOURCE_HOME $>./grad

最新整理的Android開源工具開源專案分享

熱文導讀 | 點選標題閱讀來源:https://github.com/lvm0306/andro

[Swift通天遁地]八媒體與動畫-(6)使用開源類庫快速實現滑入動畫

star recreate eat spa 實現 use 安裝 安裝配置 div 本文將演示使用第三方類庫,快速實現一個從上向下滑入的動畫。 首先確保已經安裝了所需的第三方類庫。雙擊查看安裝配置文件【Podfile】 1 platform :ios, ‘12.0

[Swift通天遁地]八媒體與動畫-(8)使用開源類庫快速實現位移動畫

clas for resources control xcode can 安裝配置 gre 安裝完成 本文將演示使用第三方類庫,快速實現位移動畫。 首先確保已經安裝了所需的第三方類庫。雙擊查看安裝配置文件【Podfile】 1 platform :ios, ‘

一般測試流程 常用的軟體測試工具有哪些? 開源測試工具 軟體測試一般用到的工具框架技術列表

一般測試流程:1.需求分析階段:只要就是對業務的學習,分析需求點。2.測試計劃階段:測試組長就要根據SOW開始編寫《測試計劃》,其中包括人員,軟體硬體資源,測試點,整合順序,進度安排和風險識別等內容。3.測試設計階段:測試方案一般由對需求很熟的高資深的測試工程師設計,測試方案要求根據《SRS》上的每個需求點設

Lottie一個可輕鬆實現各種動畫(SVGAnimations)的開源專案

先看一下官網給的圖片: 相信肯定不少小夥伴還在為svg,Animations而頭疼嗎!Lottie這個開源專案的出現,真是久旱逢甘霖(個人感覺)。 有些人會認為這些即使不用這也可以實現啊!的確能實現,Android 5.x 之後提供了對 SVG

如何實現自己的任務排程系統?--開源軟體誕生18

任務排程與ERP難捨難分--第18篇 用日誌記錄“開源軟體”的誕生 【點亮星標】----祈盼著一個鼓勵 博主開源地址: 碼雲:https://gitee.com/redragon/redragon-erp GitHub:https://github.com/redragon1985/redragon-erp

使用 Facebook開源動畫庫 POP 實現真實衰減動畫

tran rect mov rec efault gin calayer uibutton height 1. POP動畫基於底層刷新原理。是基於CADisplayLink,1秒鐘運行60秒,接近於遊戲開發引擎 @interface Vie