kafka官網:http://kafka.apache.org/html
官方文檔:http://kafka.apache.org/documentation.html#quickstartjava
kafka集羣安裝git
下載: kafka_2.10-0.8.2.0.tar.gzgithub
解壓: tar -zxvf kafka_2.10-0.8.2.0.tgzweb
軟連接配置: ln -s kafka_2.10-0.8.2.0 kafkaapache
修改配置文件:
緩存
cd kafka/config服務器
vi server.propertiesapp
server.properties 配置說明(僅對須要留意的說明):工具
broker.id=0 // 這個ID是惟一標示,須惟一 port=9092 // 訪問端口,默認爲 9092 host.name=kafka-server1 // 多塊網卡時,需注意。 num.io.threads=10 // disk I/O 線程數,掛多塊盤的時候,應大於硬盤數 log.dirs=/home/kafka/data/kafka-logs // 存放kafka topic數據的地址,很重要,別配錯 log.retention.hours=168 // 數據緩存週期,默認爲7天,硬盤不夠時能夠調小 zookeeper.connect=zk-server1:2181,zk-server2:2181,zk-server3:2181 // zookeeper集羣鏈接
PS:
scp -r kafka 至其他機器
其他機器修改 broker.id 和 host.name
啓動過程:
1. 啓動 zookeeper: ./zkServer.sh start
2. 啓動 kafka: bin/kafka-server-start.sh /config/server.properties 通用啓動腳本
監控安裝:
kafka監控選用Yahoo開源的 kafka-manager,功能比較齊全。
1. 同時管理多個不一樣的集羣;
2. 很容易地檢查集羣的狀態(topics, brokers, 副本的分佈, 分區的分佈);
3. 選擇副本;
4. 產生分區分配(Generate partition assignments)基於集羣的當前狀態;
5. 從新分配分區;
6. 監控進出流量,條數等信息(topics,brokers)。
7. 支持集羣化部署
項目信息:https://github.com/yahoo/kafka-manager
kafka-manager沒有權限管理功能,因此請操做請慎重。
sbt是scala的打包構建工具。
安裝參考:http://www.scala-sbt.org/download.html
編譯,生成發佈包:
git clone https://github.com/yahoo/kafka-manager cd kafka-manager sbt clean dist
sbt clean dist會很是慢,期間遇到個錯誤,下載失敗collections.jar,能夠手工下載放在kafka-manager目錄下。
生成的zip文件會在kafka-manager/target/universal 下面。生成的包只須要java環境就能夠運行了,在部署的機器上不須要安裝sbt。
在服務器上解壓 生成的zip文件。
unzip kafka-manager-1.2.4.zip
修改conf/application.conf,把kafka-manager.zkhosts改成本身的zookeeper服務器地址,如:
kafka-manager.zkhosts="localhost:2181"
kafka-manager.zkhosts原配置裏重複了一個,注掉便可啓動
bin/kafka-manager -Dconfig.file=conf/application.conf -Dhttp.port=9701
http.port爲web控制訪問接口,默認爲9000,須要修改爲其餘的端口。http.port 配置在application.conf裏不起做用,見https://github.com/yahoo/kafka-manager/issues/16
開啓JMX
功能:統計Kafka topic進出流量
開啓方法:
1. 修改bin/kafka-server-start.sh,添加JMX_PORT參數,添加後樣子以下(使用了9703端口,可改)
if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G" export JMX_PORT="9703" fi
2. 登錄Kafka-manager UI
點擊Add Cluster,配置Kafka集羣信息,勾選 __Enable JMX Polling__,點Save便可