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

简介: 快速学习离线同步 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
1879 6
|
关系型数据库 MySQL API
|
Apache 流计算 OceanBase
手把手教你实现 OceanBase 数据到阿里云数据库 SelectDB 内核版 Apache Doris 的便捷迁移|实用指南
本文介绍了如何将数据从 OceanBase 迁移到阿里云数据库 SelectDB 内核版 Apache Doris。提供 3 种数据同步方法 1. 使用 DataX,下载 DataX 并编写配置文件,通过 OceanBaseReader 和 DorisWriter 进行数据迁移。 2. 利用 Apache Doris 的 Catalog功 能,将 OceanBase 表映射到 Doris 并插入数据。 3. 通过Flink CDC,设置 OceanBase 环境,配置 Flink 连接器,实现实时数据同步。
2431 0
手把手教你实现 OceanBase 数据到阿里云数据库 SelectDB 内核版 Apache Doris 的便捷迁移|实用指南
|
消息中间件 监控 Java
Kafka Producer异步发送消息技巧大揭秘
Kafka Producer异步发送消息技巧大揭秘
1573 0
|
消息中间件 存储 负载均衡
Kafka【付诸实践 01】生产者发送消息的过程描述及设计+创建生产者并发送消息(同步、异步)+自定义分区器+自定义序列化器+生产者其他属性说明(实例源码粘贴可用)【一篇学会使用Kafka生产者】
【2月更文挑战第21天】Kafka【付诸实践 01】生产者发送消息的过程描述及设计+创建生产者并发送消息(同步、异步)+自定义分区器+自定义序列化器+生产者其他属性说明(实例源码粘贴可用)【一篇学会使用Kafka生产者】
1102 4
|
7月前
|
数据采集 监控 数据可视化
你的数据质量可靠吗?一份评估数据质量的实用指南
数据质量是企业数据驱动的生命线。本文深入探讨其六大核心维度:准确性、完整性、一致性、及时性、唯一性与有效性,解析低质数据带来的决策失误、效率低下等痛点,并分享如何通过业务与技术协同,借助工具实现质量规则的自动化监控与持续改进,构建可信数据体系。
|
11月前
|
SQL 关系型数据库 MySQL
五、Sqoop 增量导入:精通 Append 与 Lastmodified 模式
在实际业务场景中,数据是不断变化的,怎么用 Sqoop 实现“只拉新增或变化部分”而不是每次全量导入?这一篇就详细讲清楚 Sqoop 增量导入的两种模式(append 和 lastmodified),重点解释 lastmodified 模式下 merge-key 怎么用,配套实战例子和常见坑,讲完你就能搞明白增量同步该怎么配置了。
659 0
|
7月前
|
存储 人工智能 搜索推荐
不懂向量数据库?别怕!一文讲清8大主流工具,手把手教你做选择
向量数据库是AI应用的“超级记忆中枢”,能将文本、图像等转化为数学指纹并快速检索相似内容。本文通俗解析8大主流向量数据库,涵盖托管型、开源型与嵌入式三类,助你根据场景选型,轻松构建智能搜索、推荐系统与RAG应用。
5495 6
|
数据采集 存储 SQL
五问数据质量,一文讲透从根源到治理应用
在国家推动数据要素化改革背景下,数据已成为驱动新质生产力和产业变革的核心要素。本文聚焦企业在数据质量治理中的五大核心问题,解析数据质量问题来源、治理目标、责任划分、实施路径与评估方法,为企业构建可持续的数据质量保障机制提供实践指导。