1.参考
kafka 集群--3个broker 3个zookeeper创建实战
细细品味Kafka_Kafka简介及安装_V1.3
2.准备工作
- 准备3台机器,IP地址分别为:192.168.3.11(12,13)
- 下载kafka稳定版本,我的版本为:Scala 2.11 - kafka_2.11-0.9.0.0.tgz
- 分别解压放入到想安装的目录下,我的目录为:/home/rasa 解压命令为:
tar -xzf *.tgz
3.搭建zookeeper集群
- 进入解压后的目录/home/rasa/kafka_2.11-0.9.0.0
- 进入config目录下,修改zookeeper.properties文件(所有机器相同)
tickTime =2000
dataDir =/data/zookeeper/
clientPort =2181
initLimit =5
syncLimit =2
server.1 =192.168.3.11:2888:3888
server.2 =192.168.3.12:2888:3888
server.3 =192.168.3.13:2888:3888
- 在dataDir目录/data/zookeeper/下写一个myid文件,命令如下:
echo 1 >myid
注意:这个id是zookeeper的主机标示,每个主机id不同第二台是2 第三台是3。
- 逐次启动3台机器的zookeeper 构成一个集群:
bin/zookeeper-server-start.sh config/zookeeper.properties &
由于ZooKeeper集群启动的时候,每个结点都试图去连接集群中的其它结点,先启动的肯定连不上后面还没启动的,所以打印出来的部分的异常是可以忽略的。集群在选出一个Leader后,最后稳定了。其他结点可能也出现类似问题,属于正常。
4.搭建kafka集群
- 进入config目录,修改server.properties(逐个机器修改)
broker.id =1(其他机器为 2/3)
port =9092
zookeeper.connect= 192.168.3.11:2181,192.168.3.12:2181,192.168.3.13:2181
log.dirs =/home/rasa/kafka-logs
host.name =192.168.3.11
advertised.host.name =192.168.3.11
- 启动每台服务器的kafka:
bin/kafka-server-start.sh config/server.properties &
5.测试集群
- 创建一个topic
bin/kafka-topics.sh --create --zookeeper 192.168.3.11:2181 --replication-factor 3 --partitions 1
--topic test-topic
- 查看创建的topic
bin/kafka-topics.sh --describe --zookeeper 192.168.3.11:2181 --topic test-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
- 查看topic列表
bin/kafka-topics.sh --list --zookeeper 192.168.3.11 :2181
test
test-topic
- 查看列表及具体信息
bin/kafka-topics.sh --zookeeper localhost --describe
- 查看集群情况:
bin/kafka-topics.sh --describe --zookeeper 192.168.3.12:2181 --topic test-topic
bin/kafka-topics.sh --describe --zookeeper 192.168.3.13:2181 --topic test-topic
发现都能看到test-topic。
- 生产消息
bin/kafka-console-producer.sh --broker-list 192.168.3.13:9092 -topic test-topic
- 消费消息
bin/kafka-console-consumer.sh --zookeeper 192.168.3.13:2181 --from-beginning --topic test-topic