mac上搭建kafka並利用spark streaming實時消費
Kafka是一個快速、可擴展的、高吞吐、可容錯的分散式發布訂閱消息系統,是由Apache軟體基金會開發的一個開源流處理]平台,由Scala和Java編寫。
APP流行起來之後,企業就有了大量用戶的行為數據,怎麼有效的利用這些數據成了企業的重中之重。利用數據的第一步就是高效的採集數據,Kafka就是企業傳輸收集用戶行為數據的常用系統。
程序員開發的演算法都是部署在伺服器上,要想在本地測試就得自己在本地搭建Kafka環境。通過模擬用戶行為數據來營造真實環境,這樣可以更方便地對代碼進行調試。
mac上安裝Kafka
採用mac下的安裝利器homebrew,在終端輸入即可,homebrew會自動安裝kafka的依賴zookeeper。
使用brew安裝後,kafka和zookeeper的配置文件路徑如下,通常情況下我們也不需要做任何修改。
安裝完之後,終端會顯示啟動提示消息:
使用下面兩個命令快速啟動zookeeper和kafka:
模擬真實環境生產Kafka消息
雖然可以在終端生產消息,但要生產真實環境下的json格式的數據確很麻煩,所以寫了腳本自動模擬真實環境下的數據。
先在idea上增加mavern-kafka依賴
下面的代碼創建了兩個topic,每200毫秒隨機產生一些用戶在電商APP上的行為數據。
在終端輸入以下命令,接收topic-impression的消息.
spark streaming消費消息
Spark streaming是Spark核心API的一個擴展,它對實時流式數據的處理具有可擴展性、高吞吐量、可容錯性等特點。
下面的程序實現spark streaming每6秒列印一次從kafka收集到數據。
參考資料
不停遊動的魚, mac 本地安裝kafka)
lusecond,mac環境下使用brew安裝kafka
spark, Spark Streaming + Kafka Integration Guide (Kafka broker version 0.10.0 or higher)
wiki, kafka
Andi Ai, Spark編程指南 - 簡體中文版


TAG:學習之術 |