〇、概述

1、常用资料

dolphinscheduler用户手册:https://dolphinscheduler.apache.org/zh-cn/docs/latest/user_doc/system-manual.html

airflow官方文档:airflow.apache.org

2、理解

数据从多个异构数据源加载到数据库或其他目标地址

3、选型

(1)ETL

Kettle

Streamset

(2)同步

DataX

Sqoop

Canel

(3)调度

DolphinSchedule

Azkaban

Oozie on Hue

Airflow

一、ETL

(一)Kettle

1、简介

Spoon图形化界面操作

支持的数据源丰富,但支持的数据源不主流

kettle是做数据清洗,转换工作的工具

2、组成

(1)转换Transformation:多个数据源输入

各种各样的输入(HDFS、parquet、HBASE输入)、转换和输出(如HDFS、parquet、HBASE、表输出或数据同步功能)【dolphinschedule需要集成datax插件做数据同步】

(2)作业Job:循环成圈,可以包含作业或转换

内部可以包含:开始、设置变量、成功和转换

可以定时调度&发送邮件

3、kettle调用

(1)API方式调用kettle

https://blog.csdn.net/qq_32577829/article/details/123867367

http://www.kettle.net.cn/2230.html

(2)集成平台

构建定时调度任务

4、优化

spoon脚本

调大JVM内存大小

线程堆栈大小

if "%PENTAHO_DI_JAVA_OPTIONS%"=="" set PENTAHO_DI_JAVA_OPTIONS="-Xms2048m" "-Xmx2048m" "-XX:MaxPermSize=256m"

增大缓存

使用数据库连接池

提高批处理的commit size

避免使用update , delete操作,尤其是update,如果可以把update变成先delete,  后insert;

5、解决阻塞

(1)流数据执行阻塞

添加阻塞的组件

可以设置阻塞到哪一步才能执行

(2)资源库死锁问题

dbeaver连kettle库,打开锁古管理器,关掉被锁住的进程

出现原因:同一时间更新同一表会造成线程占用

6、其他版本

spoon:客户端,免安装

kettle online:不好下载,收费

webspoon:docker安装,有点卡顿,和spoon界面一样

kettle-scheduler-boot:基于kettle8.3的API,https://www.35youth.cn/886.html

(博主整理了mysql手册https://www.35youth.cn/mysql.html)

(二)Streamset

大数据实时采集ETL工具,可以实现不写一行代码完成数据的采集和流转。通过拖拽式的可视化界面,实现数据管道(Pipelines)的设计和定时任务调度。

数据源支持MySQL、Oracle等结构化和半/非结构化,目标源支持HDFS、Hive、Hbase、Kudu、Solr、Elasticserach等

创建一个Pipelines管道需要配置数据源(Origins)、操作(Processors)、目的地(Destinations)三部分

二、同步

(一)DataX

1、概述

(1)概述

异构数据源离线同步工具,将网状同步链路转为星型同步链路,通过接入不同的数据源,让datax作为中间载体

【想起kettle的转换图标】

(2)组成

Reader采集模块、Writer写入模块、Framework数据传输通道

(3)原理

job管理单个作业,task对job切分(作业最小单元),每个task负责一部分同步工作;schedule将task归为5个一组,通过taskgroup对task进行启动

(4)实现方式

通过脚本调用Python2,再解析JSON文件(如:python datax.py /opt/module/datax/job/job.json)

对数据库压力小,全量速度快,适合做数据同步工作

不支持增量同步

2、案例

查看官方模板:python /opt/module/datax/bin/datax.py -r mysqlreader -w hdfswriter

使用:[atguigu@hadoop102 datax]$ bin/datax.py job/hdfs2mysql.json

(1)从stream流读取数据并打印到控制台

[atguigu@hadoop102 job]$ /opt/module/datax/bin/datax.py /opt/module/datax/job/stream2stream.json

"writer": {
"name": "streamwriter",
"parameter": {
"encoding": "UTF-8",
"print": true
}
}
}
],

(2)读取MySQL中的数据存放到HDFS

[atguigu@hadoop102 datax]$ bin/datax.py job/mysql2hdfs.json

(3)读取HDFS数据写入MySQL

[atguigu@hadoop102 datax]$ bin/datax.py job/hdfs2mysql.json

(4)从Oracle中读取数据存到MySQL

/opt/module/datax/bin/datax.py /opt/module/datax/job/oracle2mysql.json

(5)读取Oracle的数据存入HDFS中

[oracle@hadoop102 datax]$ bin/datax.py job/oracle2hdfs.json

(6)读取MongoDB的数据导入到HDFS

[atguigu@hadoop102 datax]$ bin/datax.py job/mongdb2hdfs.json

(7)读取MongoDB的数据导入MySQL

[atguigu@hadoop102 datax]$ bin/datax.py job/mongodb2mysql.json

(二)Sqoop

Sqoop,SQL-to-Hadoop 即 “SQL到Hadoop和Hadoop到SQL”

(三)Canel

基于数据库增量日志解析,提供增量数据实时订阅和消费,目前主要支持了MySQL,也支持mariaDB。

三、调度

(一)DolphinSchedule

支持传统的shell任务,同时支持大数据平台任务调度:MR、Spark、SQL(mysql、postgresql、hive/sparksql)、python、procedure、sub_process【兼容传统与大数据】

通过拖拽来绘制DAG

(二)Azkaban

hadoop的job调度,适合shell脚本,当job不多的时候,可以使用

Azkaban支持直接传参,例如${input}。

(三)Oozie on Hue

hadoop可视化平台Hue的插件

Cloudera公司,需要预先将规则定义在workflow.xml中

Oozie支持参数和EL表达式,例如${fs:dirSize(myInputDir)}

(四)Airflow

是apache的一个顶级开源项目由python编写

ariflow功能比azkaban完整强大

airflow在部署运维以及使用上要比azkaban复杂,成本高

将工作流编写任务的有向无环图(DAG)

通过airflow webserver -p 8080 -D启动web服务,通过airflow scheduler -D启动调度

通过编写python文件和配置文件,执行python文件中对应的任务

查看所有dag任务:airflow list_dags

(五)Xxl Job

【大数据工具选型】ETL&同步&调度工具比较-Kettle、Streamset,DataX、Sqoop、Canel,DolphinSchedule、Azkaban、Oozie、Airflow、Xxl Job的更多相关文章

  1. Hadoop和大数据:60款顶级开源工具(山东数漫江湖)

    说到处理大数据的工具,普通的开源解决方案(尤其是Apache Hadoop)堪称中流砥柱.弗雷斯特调研公司的分析师Mike Gualtieri最近预测,在接下来几年,“100%的大公司”会采用Hado ...

  2. 大数据 什么是 ETL

    ETL 概念 ETL 这个术语来源于数据仓库,ETL 指的是将业务系统的数据经过抽取.清洗转换之后加载到数据仓库的过程.ETL 的目的是将企业中的分散.零乱.标准不统一的数据整合到一起,为企业的决策提 ...

  3. 双汇大数据方案选型:从棘手的InfluxDB+Redis到毫秒级查询的TDengine

    双汇发展多个分厂的能源管控大数据系统主要采用两种技术栈:InfluxDB/Redis和Kafka/Redis/HBase/Flink,对于中小型研发团队来讲,无论是系统搭建,还是实施运维都非常棘手.经 ...

  4. 大数据学习--day07(冒泡排序、Arrays工具类、方法可变参数)

    冒泡排序.Arrays工具类.方法可变参数 冒泡排序之前写过,略 Arrays工具类 二分法查询 public static int binarySearch(int[] a,int key) 头信息 ...

  5. 数据分析 大数据之路 六 matplotlib 绘图工具

      散点图 #导入必要的模块 import numpy as np import matplotlib.pyplot as plt #产生测试数据 x = np.arange(1,10) y = x ...

  6. 【原创】大数据基础之ETL vs ELT or DataWarehouse vs DataLake

    ETL ETL is an abbreviation of Extract, Transform and Load. In this process, an ETL tool extracts the ...

  7. 主流ETL(Extract-Transform-Load)工具选型,Kettle Spoon、Datastage、Powercenter介绍

    参考:三大主流ETL工具选型 ETL工具 Kettle Spoon 开源ETL工具,所以免费,用java开发的. Ascential公司的Datastage(在2005年被IBM收购现在是 IBM 的 ...

  8. 企业没有大数据技术?选择这款BI工具

    ​无论是网络时代的传统营销还是大数据营销,营销人员的任务之一就是找到目标客户,实现自己的营销目标.而我们说的大数据营销只不过是营销的工具发生了变化,营销的本质和目标是不变的. 就目前而言,现在的大数据 ...

  9. 从 Airflow 到 Apache DolphinScheduler,有赞大数据开发平台的调度系统演进

    点击上方 蓝字关注我们 作者 | 宋哲琦 ✎ 编 者 按 在不久前的 Apache  DolphinScheduler Meetup 2021 上,有赞大数据开发平台负责人 宋哲琦 带来了平台调度系统 ...

  10. 知名大厂如何搭建大数据平台&架构

    今天我们来看一下淘宝.美团和滴滴的大数据平台,一方面进一步学习大厂大数据平台的架构,另一方面也学习大厂的工程师如何画架构图.通过大厂的这些架构图,你就会发现,不但这些知名大厂的大数据平台设计方案大同小 ...

随机推荐

  1. 第一个Java代码的编写 :HelloWorld代码的编写

    HelloWorld代码的编写 创建一个新的文件夹,通过Notepad++编写第一个Java程序 , 文件名为"Hello.java" 在文件中编写,如下代码: public cl ...

  2. Python实验报告——第4章 序列的应用

    实验报告 [实验目的] 1.掌握python中序列及序列的常用操作. 2.根据实际需要选择使用合适的序列类型. [实验条件] 1.PC机或者远程编程环境. [实验内容] 1.完成第四章 序列的应用 实 ...

  3. .Net 7 C#11 原始字符串

    .Net7 的到来的同时,也带来了 C# 11,而令我最期待的就是 C# 11 的 原始字符串了,当我知道这个的时候,简直比过年还要开心. 非原始字符串 首先我们看看现在写字符串的方式 var str ...

  4. Python中dataclass库

    目录 dataclass语法 一. 简介 二. 装饰器参数 三. 数据属性 1. 参数 2. 使用示例 3. 注意事项 四. 其他 1. 常用函数 2. 继承 3. 总结 dataclass语法 一. ...

  5. PAT (Basic Level) Practice 1028 人口普查 分数 20

    某城镇进行人口普查,得到了全体居民的生日.现请你写个程序,找出镇上最年长和最年轻的人. 这里确保每个输入的日期都是合法的,但不一定是合理的--假设已知镇上没有超过 200 岁的老人,而今天是 2014 ...

  6. 企业使用erp系统的好处及解决了什么问题?

    不是所有的企业使用ERP都能带来好处的,尤其是对于一些小微企业,带来的可能是灾难,而实施不适用的系统同样也会带来意想不到的后果,所以在ERP的使用方面得根据自己企业实际做决定.不同规模的企业选用不同的 ...

  7. 监控CPU状况并发送邮件shell脚本

    #!/bin/bash #监控CPU状况并发送邮件 DATE=$(date +%y%m%d) TEMP=$(mktemp tmp.XXX.txt) cat /proc/cpuinfo >$TEM ...

  8. Failed to convert from type [java.lang.String] to type [java.util.Date] for value '2020-02-06'; nested exception is java.lang.IllegalArgumentException]解决

    今天做springbook项目前端输入日期传到数据库保存报了一下错误 Whitelabel Error Page This application has no explicit mapping fo ...

  9. Rdt2.1 和 Rdt2.2的详细解释

    Rdt2.1 和 Rdt2.2的详细解释 目录 Rdt2.1 和 Rdt2.2的详细解释 这俩为啥会出现? 解决之道 Rdt 2.1 Rdt2.2 可靠数据传递中Rdt1.0, Rdt2.0, Rdt ...

  10. 前端图形:SVG与Canvas

    00.前端图形 前端代码实现图形的几种方式:CSS.SVG.Canvas(主要是JavaScript编码) CSS也是可以画图的,需要借助于高宽.边框border.clip-path裁剪.渐变色背景等 ...