Apache kafka 是一個分佈式的基於push-subscribe的消息系統,它具有快速、可擴展、可持久化的特色。它如今是Apache旗下的一個開源系統,做爲hadoop生態系統的一部分,被各類商業公司普遍應用。它的最大的特性就是能夠實時的處理大量數據以知足各類需求場景:好比基於hadoop的批處理系統、低延遲的實時系統、storm/spark流式處理引擎。html
高吞吐量、低延遲:kafka每秒能夠處理幾十萬條消息,它的延遲最低只有幾毫秒
可擴展性:kafka集羣支持熱擴展
持久性、可靠性:消息被持久化到本地磁盤,而且支持數據備份防止數據丟失
容錯性:容許集羣中節點失敗(若副本數量爲n,則容許n-1個節點失敗)
高併發:支持數千個客戶端同時讀寫java
1.日誌收集:一個公司能夠用Kafka能夠收集各類服務的log,經過kafka以統一接口服務的方式開放給各類consumer,例如hadoop、Hbase、Solr等。
2.消息系統:解耦和生產者和消費者、緩存消息等。
3.用戶活動跟蹤:Kafka常常被用來記錄web用戶或者app用戶的各類活動,如瀏覽網頁、搜索、點擊等活動,這些活動信息被各個服務器發佈到kafka的topic中,而後訂閱者經過 web
4.訂閱這些topic來作實時的監控分析,或者裝載到hadoop、數據倉庫中作離線分析和挖掘。
5.運營指標:Kafka也常常用來記錄運營監控數據。包括收集各類分佈式應用的數據,生產各類操做的集中反饋,好比報警和報告。
6.流式處理:好比spark streaming和storm
7.事件源apache
關於JDK的安裝及環境變量配置,這裏就不贅述了。不清楚的能夠查看JDK安裝與環境變量配置。(建議下載Oracle官方發佈的Java,下載地址是:http://www.java.com/download/)。windows
先從Zookeeper官網下載Zookeeper安裝包。緩存
下載完成以後, 在D盤新建一個bigData目錄(D:\bigData),用於做爲安裝zookeeper和kafka的目錄,直接解壓zookeeper安裝包。注意:路徑中最好不要出現空格,好比D:\Program Files,儘可能別用,運行腳本時會有問題。服務器
a. 進入zookeeper的相關設置所在的文件目錄,例如本文的:D:\bigData\zookeeper-3.4.10\conf,將zoo_sample.cfg重命名爲zoo.cfg。打開zoo.cfg,修改配置以下:併發
注:此處只是修改dataDir=/tmp/zookeeper的配置。app
b. 配置zookeeper環境變量:負載均衡
ZOOKEEPER_HOME=D:\bigData\zookeeper-3.4.10
編輯系統變量中的path變量,增長%ZOOKEEPER_HOME%\bin
此時zookeeper已經配置完成,打開cmd,輸入zkserver,運行zookeeper,運行結果以下:
首先從Kafka官網http://kafka.apache.org/downloads下載Kafka安裝包。(要下載Binary downloads這個類型,不要下載源文件,方便使用)
修改Kafka配置文件:
a. 修改config目錄下的server.properties文件,修改log.dirs=D:/bigData/kafka_2.11-1.1.0/kafka-logs 。
注:在server.properties文件中,zookeeper.connect=localhost:2181表明kafka所鏈接的zookeeper所在的服務器IP以及端口,可根據須要更改。本文在同一臺機器上使用,故不
用修改。
b.修改config目錄下的log4j.properties文件,修改log4j.appender.kafkaAppender.File=D:/bigData/kafka_2.11-1.1.0/logs/server.log
其餘地方暫時先不用修改,kafka會按照默認配置,在9092端口上運行,並鏈接zookeeper的默認端口2181。
注:在啓動kafka服務器前,必須確保Zookeeper實例已經在運行,由於kafka的運行是須要zookeeper這種分佈式應用程序協調服務。
進入kafka安裝目錄D:\bigData\kafka_2.11-1.1.0,按下shift+鼠標右鍵,選擇"在此處打開命令窗口",打開命令行,在命令行中輸入:.\bin\windows\kafka-server-start.bat .\config\server.properties回車。正常啓動界面如圖:
注意:windows下kafka啓動報錯,找不到或沒法加載主類 Files\Java\jdk1.8.0_121\lib\dt.jar;C:\Program的問題。
解決方法:
打開路徑D:\bigData\kafka_2.11-1.1.0\bin\windows 下的文件kafka-run-class.bat,搜索-cp %CLASSPATH%,修改爲-cp "%CLASSPATH%"
建立主題(Topic)
此時Topic建立完成,能夠在kafka安裝目錄查看到該topic對應的目錄。
建立生產者(producer)
建立消費者(consumer)
如今生產者、消費者均已建立完成。在生產者命令行窗口輸入信息,觀察消費者命令行窗口。
以上爲kafka在windows下的安裝和基本的使用。
其實新版本的Kafka已經自帶zookeeper。Kafka使用zookeeper做爲其分佈式協調框架,很好的將消息生產、消息存儲、消息消費的過程結合在一塊兒。同時藉助zookeeper,kafka可以生產者、消費者和broker在內的因此組件在無狀態的狀況下,創建起生產者和消費者的訂閱關係,並實現生產者與消費者的負載均衡。
所以,在上邊步驟中,咱們能夠不安裝zookeeper,直接修改Kafka的config目錄中(D:\bigData\kafka_2.11-1.1.0\config)的zookeeper.properties文件
#dataDir=/tmp/zookeeper
dataDir=D:/bigData/kafka_2.11-1.1.0/data/zookeeper
在D:\bigData\kafka_2.11-1.1.0\bin\windows目錄下打開新的命令行,輸入命令:zookeeper-server-start.bat ../../config/zookeeper.properties回車。一樣能夠啓動zookeeper。