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

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM