Kafka 在行動:7步實現從RDBMS到Hadoop的實時流傳輸

對於尋找方法快速吸收數據到Hadoop數據池的企業, Kafka是一個偉大的選擇。Kafka是什麼? 它是一個分佈式,可擴展的可靠消息系統,把採取發佈-訂閱模型的應用程序/數據流融爲一體。 這是Hadoop的技術堆棧中的關鍵部分,支持實時數據分析或物聯網數據貨幣化。

本文目標讀者是技術人員。 繼續讀,我會圖解Kafka如何從關係數據庫管理系統(RDBMS)裏流輸數據到Hive, 這可以提供一個實時分析使用案例。 爲了參考方便,本文使用的組件版本是Hive 1.2.1,Flume 1.6和Kafka 0.9。

如果你想看一下Kafka是什麼和其用途的概述, 看看我 在Datafloq 上發佈的一篇早期博客。

Kafka用武之地:整體解決方案架構

下圖顯示了在整體解決方案架構中,RDBMS的業務數據傳遞到目標 Hive 表格結合了 Kafka , Flume和Hive交易功能。

36大數據

7步實時流傳輸到Hadoop

現在深入到解決方案的詳細信息,我會告訴你如何簡單幾步實時流輸數據到Hadoop。

1. 從關係數據庫管理系統(RDBMS)提取數據

所有關係數據庫都有一個記錄最近交易的日誌文件。 我們的傳輸流解決方案的第一步是,在能夠傳到Hadoop的信息格式中獲得這些交易。 講完提取機制得單獨佔用一篇博文–所以 如果你想了解更多此過程的信息, 請聯繫我們。

2. 建立Kafka Producer

發佈消息到Kafka主題的過程被稱爲“生產者”。“主題”是Kafka保存的分類消息。 RDBMS的交易將被轉換爲Kafka話題。 對於該例,讓我們想一想銷售團隊的數據庫,其中的交易是作爲Kafka主題發表的。 建立Kafka生產者需要以下步驟:

36大數據

3. 設置 Hive

接下來,我們將在Hive中創建一張表,準備接收銷售團隊的數據庫事務。 在這個例子中,我們將創建一個客戶表:

36大數據

爲了讓Hive能夠處理交易, 配置中需要以下設置:

hive.txn.manager = org.apache.hadoop.hive.ql.lockmgr.dbtxnmanager

4.設置Flume Agent,從Kafka到Hive流傳輸

現在讓我們來看看如何創建Flume代理,實現從Kafka主題中獲取數據,發送到Hive表。

遵循步驟來設置環境,然後建立Flume代理:

36大數據

接着,如下創建一個log4j屬性文件:

36大數據

然後爲Flume代理使用下面的配置文件:

36大數據

5.開啓Flume代理

使用如下命令開啓Flume代理:

$ /usr/hdp/apache-flume-1.6.0/bin/flume-ng agent -n flumeagent1 -f ~/streamingdemo/flume/conf/flumetohive.conf

36大數據

6.開啓Kafka Stream

如下示例,是一個模擬交易消息, 在實際系統中需要由源數據庫生成。 例如,以下可能來自重複SQL交易的Oracle數據流,這些交易已提交到數據庫, 也可能來自GoledenGate。

36大數據

36大數據

7.接收Hive數據

以上所有完成, 現在從Kafka發送數據, 你會看到,幾秒之內,數據流就發送到Hive表了。

End.

轉載請註明來自36大數據(36dsj.com):36大數據 » Kafka 在行動:7步實現從RDBMS到Hadoop的實時流傳輸

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章