Apache NiFi之MySQL数据同步到HBase

时间:2021-07-06 04:10:34

一.说明

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

二.开拔

Ⅰ).配置ExecuteSQLRecord

a).选择ExecuteSQLRecord

在Processor中搜索ExecuteSQLRecord

  

Apache NiFi之MySQL数据同步到HBase

 

b).配置ExecuteSQLRecord

1.创建Database Connection Pool
2.创建JsonRecordSetWriter
3.配置SQL select query

 

select Host,User,authentication_string from mysql.user;

  

Apache NiFi之MySQL数据同步到HBase

c).创建DBCPConnectionPool

在Database Connection Pool中选择DBCPConnectionPool

Apache NiFi之MySQL数据同步到HBase

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

 

Apache NiFi之MySQL数据同步到HBase

e).激活服务

Apache NiFi之MySQL数据同步到HBase

Ⅱ).配置ConvertAvroToJSON

a).选择ConvertAvroToJSON

在Processor中搜索ConvertAvroToJSON

 

Apache NiFi之MySQL数据同步到HBase

b).配置ConvertAvroToJSON

Apache NiFi之MySQL数据同步到HBase

Ⅲ).配置SplitJson

a).选择SplitJson

在Processor中搜索SplitJson

 

Apache NiFi之MySQL数据同步到HBase

b).配置SplitJson

Apache NiFi之MySQL数据同步到HBase

Ⅳ).配置PutHBaseJSON

a).选择PutHBaseJSON

在Processor中搜索PutHBaseJSON

 

Apache NiFi之MySQL数据同步到HBase

b).配置PutHBaseJSON

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

 

Apache NiFi之MySQL数据同步到HBase

c).选择HBase_1_1_2_ClientService

在Processor中搜索HBase_1_1_2_ClientService

 

Apache NiFi之MySQL数据同步到HBase

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

 

Apache NiFi之MySQL数据同步到HBase
Apache NiFi之MySQL数据同步到HBase

e).激活HBase_1_1_2_ClientService

Apache NiFi之MySQL数据同步到HBase

Ⅴ).配置LogAttribute

Apache NiFi之MySQL数据同步到HBase

Ⅵ).启动服务

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

 

Apache NiFi之MySQL数据同步到HBase

Ⅶ).验证结果

a).MySQL源数据

select * from druid.druid_datasource;

Apache NiFi之MySQL数据同步到HBase

b).HBase入库数据

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

Apache NiFi之MySQL数据同步到HBase

三.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)项

  

Apache NiFi之MySQL数据同步到HBase

b).解决方案二

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

  

Apache NiFi之MySQL数据同步到HBase