準備工做:html
1. 準備3臺機器,IP地址分別爲:192.168.0.10,192.168.0.11,192.168.0.12apache
2. 下載kafka穩定版本,個人版本爲:kafka_2.9.2-0.8.1.1.tgz ubuntu
3. 分別解壓放入到想安裝的目錄下,個人目錄爲:/home/www 解壓命令爲:服務器
tar -xzf kafka_2.9.2-0.8.1.1.tgz
搭建zookeeper集羣ssh
1. 進入解壓後的目錄/home/www/kafka_2.9.2-0.8.1.1async
2. 進入config目錄下,修改zookeeper.properties文件測試
tickTime=2000 dataDir=/data/zookeeper/ clientPort=2181 initLimit=5 syncLimit=2 server.1=192.168.0.10:2888:3888 server.2=192.168.0.11:2888:3888 server.3=192.168.0.12:2888:3888
在dataDir目錄/data/zookeeper/下寫一個myid文件,命令以下:ui
echo 1 >myid
注意:這個id是zookeeper的主機標示,每一個主機id不一樣第二臺是2 第三臺是3。spa
逐次啓動3臺機器的zookeeper 構成一個集羣:日誌
> bin/zookeeper-server-start.sh config/zookeeper.properties &
注意:使用& 會打印出啓動日誌,但若是使用secure ssh直接退出,有可能會讓zookeeper退出,建議使用命令檢查一下:
> netstat -apn | grep 2181
我啓動的順序是
192.168.0.10
192.168.0.11
192.168.0.12
因爲ZooKeeper集羣啓動的時候,每一個結點都試圖去鏈接集羣中的其它結點,先啓動的確定連不上後面還沒啓動的,因此打印出來的部分的異常是能夠忽略的。集羣在選出一個Leader後,最後穩定了。其餘結點可能也出現相似問題,屬於正常。
至此,zookeeper集羣搭建完成
搭建kafka broker集羣
進入config目錄,修改server.properties
broker.id=0 port=9092 host.name=192.168.0.10zookeeper.connect=192.168.0.10:2181,192.168.0.11:2181,192.168.0.12:2181
log.dirs=/home/www/kafka-logs
不一樣集羣broker.id 和host.name 不同,根據實際狀況配置。
修改生產者配置
broker.list=192.168.0.10:9092,192.168.0.11:9092,192.168.0.12:9092 producer.type=async
修改消費者配置:
zookeeper.connect=192.168.0.10:2181,192.168.0.11:2181,192.168.0.12:2181
啓動每臺服務器的kafka:
> bin/kafka-server-start.sh config/server.properties &
測試集羣
建立一個topic
> bin/kafka-topics.sh --create --zookeeper 192.168.0.10:2181 --replication-factor 3 --partitions 1 --topic test-replicated-topic
查看建立的topic
> bin/kafka-topics.sh --describe --zookeeper 192.168.0.10:2181 --topic my-replicated-topic Topic:test-replicated-topic PartitionCount:1 ReplicationFactor:3 Configs: Topic: test-replicated-topic Partition: 0 Leader: 1 Replicas: 1,2,0 Isr: 1,2,0
查看集羣狀況:
>bin/kafka-topics.sh --describe --zookeeper 192.168.0.11:2181 --topic test-replicated-topic
>bin/kafka-topics.sh --describe --zookeeper 192.168.0.10:2181 --topic test-replicated-topic
發現都能看到test-replicated-topic。
注意:使用一臺機器,建立3個zookeeper不一樣端口,3個kafka 不一樣端口沒有成功,和zookeeper集羣的端口有關吧,之後會研究一下。
參考資料:
http://kafka.apache.org/documentation.html#quickstart
http://www.jonzobrist.com/2012/04/17/install-apache-kafka-and-zookeeper-on-ubuntu-10-04/
http://www.open-open.com/lib/view/open1387889827593.html
完結。