〇、概述

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. ProxySQL(1):简介和安装

    文章转载自:https://www.cnblogs.com/f-ck-need-u/p/9278818.html ProxySQL有两个版本:官方版和percona版,percona版是在官方版的基础 ...

  2. kubeoperator升级步骤

    当前kubeoperator版本是3.6.0 官方文档:https://kubeoperator.io/docs/installation/install/ # 离线升级需要提前下载离线安装包,并解压 ...

  3. 配置Pod的 /etc/hosts

    某些情况下,DNS 或者其他的域名解析方法可能不太适用,您需要配置 /etc/hosts 文件,在Linux下是比较容易做到的,在 Kubernetes 中,可以通过 Pod 定义中的 hostAli ...

  4. 关联Prometheus与Alertmanager

    在Prometheus的架构中被划分成两个独立的部分.Prometheus负责产生告警,而Alertmanager负责告警产生后的后续处理.因此Alertmanager部署完成后,需要在Prometh ...

  5. .NET 6 跨服务器联表查询

    一.大家是否有这个需求 1.跨品种查询 :比如 MYSQL和一个SQLSERVER进行联表查询 ,或者SQLITE和MYSQL进行联表查询 2.跨服务器查询 : A服务器和B服务器查询 如果想同时支持 ...

  6. ASP.NET Core :中间件系列(三):中间件限流

    中间件 微软官网定义: 中间件 中间件意思就是处理请求和响应的软件: 1.选择是否将请求传递到管道中的下一个组件. 2.可在管道中的下一个组件前后执行工作. 对中间件类 必须 包括以下 具有类型为 R ...

  7. python 网络爬虫全流程教学,从入门到实战(requests+bs4+存储文件)

    python 网络爬虫全流程教学,从入门到实战(requests+bs4+存储文件) requests是一个Python第三方库,用于向URL地址发起请求 bs4 全名 BeautifulSoup4, ...

  8. DevOps|高效能敏捷交付组织:特性团队(FeatureTeam)+Scrum

    这是<研发效能组织能力建设>的第三篇.特性团队和Scrum,这两个定义我们在之前的文章中都详细介绍了.这两个组织模式或者说管理实践,我都用过所以有些时候特别有感触.书本上纯粹的模式很容易理 ...

  9. java中实现File文件的重命名(renameTo)、将文件移动到其他目录下、文件的复制(copy)、目录和文件的组合(更加灵活方便)

    欢迎加入刚建立的社区:http://t.csdn.cn/Q52km 加入社区的好处: 1.专栏更加明确.便于学习 2.覆盖的知识点更多.便于发散学习 3.大家共同学习进步 3.不定时的发现金红包(不多 ...

  10. 驱动开发:内核测试模式过DSE签名

    微软在x64系统中推出了DSE保护机制,DSE全称(Driver Signature Enforcement),该保护机制的核心就是任何驱动程序或者是第三方驱动如果想要在正常模式下被加载则必须要经过微 ...