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  ]
then
echo "Param error !"
echo "Usage: $0 progname para expara"
exit
fi #------------------------------------------------------------------------------
# 第一步: 接收参数
#------------------------------------------------------------------------------
ProgName=$
Para=$
ExpPara=$ #------------------------------------------------------------------------------
# 第二步: 运行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 ]
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、完成模块代码的编写后,如下:

开源作业调度工具实现开源的Datax、Sqoop、Kettle等ETL工具的作业批量自动化调度的更多相关文章

  1. etl学习系列1——etl工具安装

    ETL(Extract-Transform-Load的缩写,即数据抽取.转换.装载的过程),对于企业或行业应用来说,我们经常会遇到各种数据的处理,转换,迁移,所以了解并掌握一种etl工具的使用,必不可 ...

  2. 集团公司(嵌入ETL工具)财务报表系统解决方案

    集团公司(嵌入ETL工具)财务报表系统解决方案 一.项目背景: 某集团公司是一家拥有100多家子公司的大型集团公司,旗下子公司涉及各行各业,包括:金矿.铜矿.房产.化纤等.由于子公司在业务上的差异,子 ...

  3. Kettle实现数据抽取、转换、装入和加载数据-数据转移ETL工具

    原文地址:http://www.xue51.com/soft/5341.html Kettle是来自国外的一款开源的ETL工具,纯java编写,可以在Window.Linux.Unix上运行,绿色无需 ...

  4. 大数据之ETL工具Kettle的--1功能介绍

    Kettle是一款国外开源的ETL工具,纯java编写,可以在Window.Linux.Unix上运行. 说白了就是,很有必要去理解一般ETL工具必备的特性和功能,这样才更好的掌握Kettle的使用. ...

  5. ETL工具的功能和kettle如何来提供这些功能

    不多说,直接上干货! 大家会有一个疑惑,本系列博客是Kettle,那怎么扯上ETL呢? Kettle是一款国外开源的ETL工具,纯java编写,可以在Window.Linux.Unix上运行. 说白了 ...

  6. 集团公司(嵌入ETL工具)財务报表系统解决方式

    集团公司(嵌入ETL工具)財务报表系统解决方式 一.项目背景: 某集团公司是一家拥有100多家子公司的大型集团公司,旗下子公司涉及各行各业,包含:金矿.铜矿.房产.化纤等.因为子公司在业务上的差异.子 ...

  7. ETL工具Datax、sqoop、kettle 的区别

    一.Sqoop主要特点: 1.可以将关系型数据库中的数据导入到hdfs,hive,hbase等hadoop组件中,也可以将hadoop组件中的数据导入到关系型数据库中: 2.sqoop在导入导出数据时 ...

  8. Quartz.net开源作业调度

    Quartz.net开源作业调度框架使用详解 前言 quartz.net作业调度框架是伟大组织OpenSymphony开发的quartz scheduler项目的.net延伸移植版本.支持 cron- ...

  9. Quartz.NET开源作业调度框架系列

    Quartz.NET是一个被广泛使用的开源作业调度框架 , 由于是用C#语言创建,可方便的用于winform和asp.net应用程序中.Quartz.NET提供了巨大的灵活性但又兼具简单性.开发人员可 ...

随机推荐

  1. rails 多态

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #f4f4f4; background-color: rgba( ...

  2. .NET C#到Java没那么难,MVC篇

    最典型的JAVA MVC就是JSP + servlet + javabean的模式.比较好的MVC,老牌的有Struts.Webwork.新兴的MVC 框架有Spring MVC.Tapestry.J ...

  3. peoplesoft function PSTREENODE 通过 deptid 获得部门树 一级部门 名称

    create or replace function ht_gettopdeptNAME(deptid in varchar) return varchar2 is r ); c int; m ); ...

  4. Apache+Tomcat实现动静分离

    完成Tomcat集群搭建后,我们只需修改两.三处即可实现动静分离. 1.将原来httpd.conf中JkMount的路由规则都放入conf/extra/httpd-urimap.conf中: /*=l ...

  5. VBS基本语法

    一.初识VBS Vbs       是一种变量无关.解释性执行的脚本语言.vbs语言中不区分大小写.语句以换行结束. dim        声明变量:批量名称声明,多个变量之间用逗号分隔: set   ...

  6. 使用镜像仓库托管自己构建的Docker镜像

    自己构建的Docker镜像,默认存储在本机中,Docker有提供某些方式分享这些镜像,但不是主流的镜像分享方式,也有违于开源社区的共享精神. 本文介绍如何使用GitHub托管Dockerfile:使用 ...

  7. 【SqlServer系列】表连接

    1   概述 1.1  已发布[SqlServer系列]文章 [SqlServer系列]MYSQL安装教程 [SqlServer系列]数据库三大范式 [SqlServer系列]表单查询 1.2  本篇 ...

  8. CSS3-loading动画(五)

    CSS3-loading加载动画 在线示例demo:http://liyunpei.xyz/loading.html 之前发了四篇,二十二个效果,今天再分享六个效果,总计二十八个效果. 二十三.效果二 ...

  9. 分享一个废弃已久的插件架构 (.Net)

    框架介绍 1:将插件暴露的页面数据接口复用到任何 WebForm和Mvc 架构的系统. 2:插件可在线卸载,发布,更新. 3:插件可分布式 独立 部署. 4:插件之间完全解耦,通过Url跳转 相互不需 ...

  10. 1、微信小程序----弹幕的实现(无后台)

    小程序刚刚出来,现在网上的demo是多,但是要找到一个自己需要的却不容易.今天跟大家分享自己写的一个弹幕功能. 先来一张效果图: 我的思路是这样的,先用<switch>标签确定是否打开弹幕 ...