mysql同步数据到另一张表_Apache NiFi之MySQL数据同步到HBase

本文介绍了如何使用Apache NiFi将MySQL数据库中的数据通过ExecuteSQLRecord转换成Avro格式,再经ConvertAvroToJSON转为JSON,然后通过SplitJson拆分,并利用PutHBaseJSON将数据存入HBase。过程中详细阐述了各个组件的配置步骤,并提供了HBase命令及解决MySQL驱动问题的两种方案。

一.说明

将Apache NiFi做为关系型数据与非关系型数据库的数据同步工具使用,在此场景中需要将mysql导出的avro数据格式转化为json入库HBase

二.开拔

Ⅰ).配置ExecuteSQLRecord

a).选择ExecuteSQLRecord

在Processor中搜索ExecuteSQLRecord

f473651c5df7725cd849eaa67bfb0597.png

b).配置ExecuteSQLRecord

1.创建Database Connection Pool
2.创建JsonRecordSetWriter
3.配置SQL select query
select Host,User,authentication_string from mysql.user;

b65767559ec4f2def27e0b2595965a08.png

c).创建DBCPConnectionPool

在Database Connection Pool中选择DBCPConnectionPool

08c9b42bf08674b775303df1feb6eda0.png

d).配置DBCPConnectionPool

1.Database Connection URL: jdbc:mysql://hostname:3306/druid
2.Database Driver Class Name: com.mysql.jdbc.Driver
3.Database User: username
4.Database Password: password

e42257f7aa2ff5337d3a0c2648ff6a9c.png

e).激活服务

63e3690156bc1dd564621e453e0612da.png

Ⅱ).配置ConvertAvroToJSON

a).选择ConvertAvroToJSON

在Processor中搜索ConvertAvroToJSON

d0ceacb45d3c6bd6e8f1a938863820b0.png

b).配置ConvertAvroToJSON

1010a8b812a1c4deb58208c08e922739.png

Ⅲ).配置SplitJson

a).选择SplitJson

在Processor中搜索SplitJson

c7dad315865a1361d074b3fb7b5e5bea.png

b).配置SplitJson

6e6f93835c73c722fb98638245e75562.png

Ⅳ).配置PutHBaseJSON

a).选择PutHBaseJSON

在Processor中搜索PutHBaseJSON

8c380c78675b56983ba31de1a0b5d4aa.png

b).配置PutHBaseJSON

1.HBase Client Service: 选择匹配版本的HBaseClient
2.Table Name: 配置入库HBase表名
3.Row Identifier Field Name: 配置RowKey值
4.Column Family: 配置列簇

994e5d2bf67e5af0fadad427cbcfa655.png

c).选择HBase_1_1_2_ClientService

在Processor中搜索HBase_1_1_2_ClientService

217c39219f901a21f7f276cf7ec37612.png

d).配置HBase_1_1_2_ClientService

1.Zookeeper Quorum: hostname1:2181,hostname2:2181,hostname3:2181
2.Zookeeper Client Port: 2181
3.Zookeeper ZNode Parent: /hbase

1673f34d3959e9553b265cbbd8c7e34a.png

11d8e5e3712a1fd50534a7c0006edb41.png

e).激活HBase_1_1_2_ClientService

d6b22f11121a773c044e3a507a87037c.png

Ⅴ).配置LogAttribute

01e004891555c95c4f7339ee0fe86ce6.png

Ⅵ).启动服务

可以点击选择单个Processor启动,也可以在空白处点击流程启动

8c40ba945bffe59c0c441b9f8d5259f6.png

Ⅶ).验证结果

a).MySQL源数据

select * from druid.druid_datasource;

68d608a1f26d6cfc0931cfb12ee9300e.png

b).HBase入库数据

scan 'druid.druid_datasource',{LIMIT=>10}

95fe4a9650e1761c0a1fdab0fb844988.png

三.HBase命令

## 创建表空间
create_namespace 'druid'

## 查看表空间
list_namespace_tables 'druid'

## 创建表
create 'druid.druid_datasource','cf1'

## 查看表数据
scan 'druid.druid_datasource',{LIMIT=>10}

四.MySQL数据库驱动问题

a).解决方案一

将mysql驱动包放到nifi按照目录的lib中,重启nifi;如图中无需配置:Database Driver Location(s)项

1e28acddd193fc9e6ef81258ce61f1bb.png

b).解决方案二

如图配置:Database Driver Location(s)项,则驱动包可放在任何可访问的地址,无需重启nifi

e42257f7aa2ff5337d3a0c2648ff6a9c.png
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值