要搭建一個kafka集群,但是kafka又是基於zookeeper的,所以需要先搭建一個zookeeper集群
環境:centos 7(虛擬機)
jdk :1.8(官網下載)
zookeeper:3.4.9(官網下載即可)
接下來:
1. 解壓 tar --zxvf zookeeper-3.4.9.tar.gz
2. 重命名 mv zookeeper-3.4.9 zookeeper
3. 創建文件夾
cd zookeeper
mkdir logs
mkdir data
4. 進入conf文件夾下,復制配置文件zoo_sample.cfg,並將新文件夾命令為zoo.cfg
5. 修改zoo.cfg的內容:vi zoo.cfg
clientPort=2181
dataDir=/opt/zookeeper/data
dataLogDir=/opt/zookeeper/logs
server.1=192.168.56.72:2881:3881
server.2=192.168.56.73:2881:3881
server.3=192.168.56.74:2881:3881
其中的data和logs文件夾就是之前創建的
6. 創建myid文件,就是在data目錄下創建即可
值是面server后面的數字,我的三台虛擬機的myid文件的值分別是1,2,3,和上面的配置對應上了
這樣配置就可以了。
驗證一下效果:
分別啟動一下zookeeper,進入bin目錄 ./zkServer.sh start
通過jps查看:
看到QuorumPeerMain就代表成功了,也可以執行./zkServer.sh status
zookeeper已經安裝完畢接下來進行kafka的安裝:
我用的kafak是 https://archive.apache.org/dist/kafka/0.8.1/kafka_2.9.2-0.8.1.tgz
1.解壓:tar -zxvf kafka_2.9.2-0.8.1.tgz 並命名為kafka
2.創建logs文件夾,后面配置會用到
3.修改config文件下的server.properties文件
broker.id=0 //這個值建議與zookeeper里面的myid保持一致
host.name = 192.168.56.72 //本機ip,不要配置為localhost
log.dir= /opt/kafka/logs //剛才創建的logs文件夾
zookeeper.connect = 192.168.56.72:2181,192.168.56.73:2181,192.168.56.74:2181
message.max.byte=5048576 //kafka一條消息容納的消息最大為多少
default.replication.factor=2 //每個分區默認副本數量
replica.fetch.max.bytes=5048576
4.配置完成后啟動kafka
bin/kafak-server-start.sh ./config/server.properties (如需后台啟動,加上參數-daemon)
另外如果報錯,需要加入slf4j-nop-1.7.6.jar(放置在kafak/lib下面)
附鏈接:http://www.slf4j.org/dist/slf4j-1.7.6.zip
如果還報錯,嘗試關閉防火牆,由於用的是centos 7:
systemctl stop firewalld.service
systemctl disable firewalld.service
驗證結果:
創建topic
./kafak-topics.sh --create zookeeper 192.168.56.72:2181 --replication-factor 1 --partition --topic check
查看topic列表
./kafka-topics.sh --lst --zookeeper 192.168.56.72:21281
生產者發送消息
./kafak-console-producer.sh --broker-list 192.168.56.72:9092 --topic check
消費者消費消息
./kafka-console-consumer.sh --zookeeper 192.168.56.72:2181 --topic check --from-beginning
實例截圖: