离线同步 mysql 数据到 HDFS3 | 学习笔记

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 快速学习离线同步 mysql 数据到 HDFS3

开发者学堂课程【NiFi 知识精讲与项目实战(第三阶段)离线同步 mysql 数据到 HDFS3】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/707/detail/12546


离线同步 mysql 数据到 HDFS3

内容介绍

一、实际操作演示

二、操作运行启动验证


一、实际操作演示

进行设置,第一个配置项是从根节点进行拆分,所以说里面写$.*,$代表是根目录,根节点,在后面还会再去使用JsonPath 的时候,会再详细的去讲解 JsonPath 使用方法。

1.png

第二参数是当遇到处理里面默认是空的,如果它是空的默认返回是空的,第二种是会返回 nall 的字符串,里面使用默认的配置,然后保存,然后再把 convert up to Json 和 splite json 进行连接。连接时,肯定的选择 success 关系,是说当他成功的转换成阶次以后,才成功流转到的阶段,是失败的让他留在行,不需要再往后流转。在给他再设置自连接,时不再报错。

2.png

splite json 也配置完之后,会生成的单独的介绍对象,然后要把些对象写入到 HDFS 当中,在最后要需要再拖入叫做put HDFS 的处理器。接下来对 put HDFS 处理器进行设置,然后在 put HDFS 当中,来看属性配置,首先第它是的Hadoop 配置文件,很多的配置文件,也是的 Hadoop set 以及 fall 两配置文件。两配置文件,里面也要把它拷贝到的 NIFI 服务器当中才可以。

3.png

在 HDFS 是在 export 登录的 config 的目录下,现在没有目录,可以在 make dir 来创建。时已经进入的文件夹,需要把它的配置文件放置进来,配置文件在 Hadoop 集群当中,是需要先有些配置文件,才能够启动起来 Hadoop 集群。

所以只需要到的 Hadoop 集群当中来把配件拿出来。比如说可以在 server 当中有 hadoop 里面,在里面去找到 etc,然后在里面可以看到有叫 core-site,还有是 hdfs-site 的两配置文件,把两配置文件下载下来,直接放到的目标。里面已经下载不再重复下载,直接进行上传。

在的 hadoop 目录下,两配置文件,把它拖动过来,已经算出来成功。来看 ls。已经存在,也给赋权限。

5.png

两文件配置文件全部都有,然后可以在处理器当中配置属性,注意点是属性,它两配置文件中间使用逗号。来复制,进行粘贴。

6.png

把配置文件配置完以后,然后还需要配置要写入的目录,黑色的加粗的,目录写入到 user hive ,数据目录可以看,它的 ware  house 里面,NIFI test 的样的数据库,有表叫做 user-info-nifi 类似样的目录。

7.png

打开的 hue 里面,打开 score2里面来输入的文件,可以看到没有目录,删掉层看它上级,上级也没有,再删掉层,而ware  house 是有的,它下面有数据库是 hive 。让它输出,看它会不会自动创建文件夹。

8.png

文件夹写好之后,然后还有 Conflict  Resolution,主要是指策略,写入策略。可以看到策略里面有 replace 覆盖,忽略还有提示错误信息,以及 append 追加。

9.png

选择 append 让他去往文件夹里面不断的进行追加写入。配置完,点击的 apply,PutHDFS 配置完毕以后,再接下来可以把他们俩进行连接,有三关系,failure、original 、split,failure 是失败 original 指的是原文件,split 指的是切割以后单独接收对象。

10.png

需要的是 spilit 关系里面的数据,其他两数据是不需要的。里面其他两关系没有目的地,让他做自连接,他不再报错,此时 spilit 也来做自连接,因为它本身是最后节点。  

11.png


二、操作运行启动验证

NIFI 配置完毕。接下来要运行,测试,看看是否能够正常的使用。测试先不用急的全部启动,可以先逐的启动来查看。 首先启动的 Query database table。可以看到在里面它是有进程,有线程正在运行的,发现他有报错,把它停止,看报错提示。

12.png

Unable to execute SQL  select query  SELECT id,name,mobile,email son-json FROM  user info-nifi WHERE(1=1 limit 5)样的写法证明是不行的,他是写小括号,不能加 limit5 ,不能通过这样的方式,把 limit5去掉再来点编辑。在的 property 当中,limit 5去掉,然后再点击 ok。然后再来启动,可以看到它是已经成功,并且写入数据。

停止,来看具体的数据。点击查看详情,确实已经拿到数据库当中的数据。里面保存的格式,比如说:张三25岁以及 ID 的值等等,全部都读出来。证明正常运转,但是它其实并没有满足的要求。因为把 limit 给去掉,在正常工作流当中,sql 语句肯定是会有各种各样的条件,具有限制,肯定是不方便去做处理的。点击 property 在之前配置的时候说过 Query database table 有两种的配置方式来进行查询。现在用的是第一种,可以用第二种,先把给删除掉。然后外部条件也去掉,自己写 SQL 语句,在 Custom query 进行书写,是用户自己写的 SQL 语句,应该是去执行 SQL 语句叫做 select,SELECT id,name,mobile,email son-json FROM  user info-nifi 并在后面直接加入 limit5, Sql 语句添加进来,直接进行查询是不行的,它会出问题。先执行,试试。

13.png

先把队列当中的数据,先清空,怎么清空右键有 empty,点击之后,会把队列里面数据清空。  

14.png

看到它已经变成0,然后再来执行,他也有数据写入进来,看有没有新的报错。把数据查询出来,他没有报错。之前测试确实是会产生失败信息,已经成功运行,加条件再加 where,再次试验,因为之前在旧的版本当中确实不行的,where 1=1,然后 limit5。 然后再来运行 apply。

15.png

现在是对接当中是一条数据。再来进行,它也能正常的运行。也是说里面它其实现在新版本已经把问题给优化,不需要更改配置项,它也是可以去正常的执行的。数据是正常的,大数据也是正常的。证明 Query database table 现在他已经可以正常的工作。

现在它全部都是 Avor 格式的数据,要做的是把它转换成 Json 格式。刚才在查看队列数据的时候,会发现里面数据它会有些乱码问题,是 Avor 格式。如果转化成 Json 以后,比较方便去读数据。

接下来运行第二处理器,是否可以正常运行。此时运行成功看到数字已经消失,把它清理掉,然后右键点击来查看它进行结果。

发现它数据已经产生变化,已经变成 Json 格式的数据,可以把 Json 数据复制出来,复制出来以后,通过的格式化工具,把它格式化。Json 打开,打开以后再把它粘贴进来,然后通过 Format 进行格式化。看到转换以后的数据,把格式化以后的数据复制出来,进行粘贴是 Json 数据。

16.png

里面是最外层的中括号是 Json 数组,它里面每大括号,是 Json object 的对象,每一个 Json object 的对象实际上对应数据库当中的数据记录, id,name,mobile,email son-json 模样的。

继续执行,进行切割,把刚才所看到的切割成单独的 object 已经消费完,此时再来停止。队列的数据变成4条之前都是2条,因为把它切割,刚才看到 limit5,说明每次查询是有5条数据,共查询两次肯定是10条,最后共10条数据。任意点击。可以看到数据它变成大括号样的形状,也是说它是的 Json Object,它里面包含 ID 属性、name 属性、mobile 属性,字段信息此时已经切割完成。

17.png

最后来执行,看看能不能把些写入到 HDFS 目录,先把目录复制,目录刚才已经看过,是没有文件夹的,看看是否会自动创建。

18.png

再来启动最后处理器,去写硬盘或者读取硬盘的时候都会比较慢,慢和 NIFI 是没有关系的。比如说读 mysql 数据库,不是 Nifi 慢是 mysql 慢,现在写 HDFS 也慢,但不是 Nifi 慢瓶颈在于 HDFS,所以说有的时候并不是的 NIFI 性能不够,而是说要去优化它所依赖的些环境,比如说的 HDFS 者 hive 或者 Mysql 时候运行成功结束,把它停止掉,全部数据已经消费完,他也没有报错。

19.png

文件夹已经存在,再来点回车。可以看到目录真的已经有,而且目录下面还存在两新的文件,有两新文件,点击来进行查看。可以看到在文件当中保存的条条的 Object 是刚才所发送每条单独的 Object 数据。

20.png

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
druid 数据库
几行代码轻松复现druid连接泄露的BUG之keepalive
几行代码轻松复现druid连接泄露的BUG之keepalive
1386 6
|
消息中间件 监控 Java
Kafka Producer异步发送消息技巧大揭秘
Kafka Producer异步发送消息技巧大揭秘
1140 0
|
关系型数据库 MySQL API
|
消息中间件 存储 负载均衡
Kafka【付诸实践 01】生产者发送消息的过程描述及设计+创建生产者并发送消息(同步、异步)+自定义分区器+自定义序列化器+生产者其他属性说明(实例源码粘贴可用)【一篇学会使用Kafka生产者】
【2月更文挑战第21天】Kafka【付诸实践 01】生产者发送消息的过程描述及设计+创建生产者并发送消息(同步、异步)+自定义分区器+自定义序列化器+生产者其他属性说明(实例源码粘贴可用)【一篇学会使用Kafka生产者】
780 4
|
2月前
|
Ubuntu Linux 网络安全
Linux装软件神器:yum 超详细入门指南
在Linux中安装软件有三种常用方法:源码安装、rpm包安装和yum包管理器安装。其中,**yum**(或Ubuntu的apt)最为便捷,类似于手机应用商店,能自动解决依赖问题,适合新手使用。本文详细介绍了yum的工作原理、软件源配置、常用命令及生态系统的意义,帮助用户快速上手Linux软件安装与管理。
 Linux装软件神器:yum 超详细入门指南
|
存储 NoSQL 关系型数据库
阿里DataX极简教程
【5月更文挑战第1天】DataX是一个高效的数据同步工具,用于在各种数据源之间迁移数据,如MySQL到另一个MySQL或MongoDB。它的工作流程包括read、write和setting步骤,通过Framework协调多线程处理。其核心架构包括Job、Task和TaskGroup,支持并发执行。DataX支持多种数据源,如RDBMS、阿里云数仓、NoSQL和无结构化数据存储。例如,从MySQL读取数据并同步到ClickHouse的实践操作包括下载DataX、配置任务文件和执行同步任务。
2612 1
阿里DataX极简教程
|
数据采集 人工智能 数据可视化
【python】python小说数据抓取+可视化(源码+数据)【独一无二】
【python】python小说数据抓取+可视化(源码+数据)【独一无二】
|
SQL 分布式计算 关系型数据库
Hadoop-22 Sqoop 数据MySQL到HDFS(全量) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-22 Sqoop 数据MySQL到HDFS(全量) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
237 0
|
SQL 存储 分布式计算
HDFS数据(跨集群)迁移
HDFS数据(跨集群)迁移
|
机器学习/深度学习 数据可视化 TensorFlow
【手把手教学】如何可视化YOLOv8深度学习的网络结构并保存
【手把手教学】如何可视化YOLOv8深度学习的网络结构并保存