Apache NiFi之MySQL数据同步到HBase

一.说明

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

二.开拔

Ⅰ).配置ExecuteSQLRecord

a).选择ExecuteSQLRecord

在Processor中搜索ExecuteSQLRecord

  

 

b).配置ExecuteSQLRecord

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

 

select Host,User,authentication_string from mysql.user;

  

c).创建DBCPConnectionPool

在Database Connection Pool中选择DBCPConnectionPool

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

 

e).激活服务

Ⅱ).配置ConvertAvroToJSON

a).选择ConvertAvroToJSON

在Processor中搜索ConvertAvroToJSON

 

b).配置ConvertAvroToJSON

Ⅲ).配置SplitJson

a).选择SplitJson

在Processor中搜索SplitJson

 

b).配置SplitJson

Ⅳ).配置PutHBaseJSON

a).选择PutHBaseJSON

在Processor中搜索PutHBaseJSON

 

b).配置PutHBaseJSON

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

 

c).选择HBase_1_1_2_ClientService

在Processor中搜索HBase_1_1_2_ClientService

 

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

 


e).激活HBase_1_1_2_ClientService

Ⅴ).配置LogAttribute

Ⅵ).启动服务

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

 

Ⅶ).验证结果

a).MySQL源数据

select * from druid.druid_datasource;

b).HBase入库数据

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

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

  

b).解决方案二

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

  

posted @ 2020-01-04 17:26  大数据从业者FelixZh  阅读(1211)  评论(0编辑  收藏  举报