kafka入门(二、安装zookeeper和kafka)
1.zookeeper的安装
1.1.下载zookeeper
本文下载的版本apache-zookeeper-3.6.1-bin.tar.gz
1.2.修改zookeeper配置文件
conf/zoo_sample.cfg复制一份副本,conf/zoo.cfg
修改配置项
dataDir=/data/software/apache-zookeeper-3.6.1-bin/tmp
根据自己的情况修改目录
1.3.启动zookeeper
linux 启动命令 zkServer.sh start
关闭zookeeper命令 zkServer.sh stop
如果是windows系统
启动命令zkServer.cmd
退出ctrl+c
1.4.查看brokers的id
./zkCli.sh
ls /brokers/ids
2.kafka的安装
2.1.下载kafka
本文下载的版本kafka_2.12-2.5.0.tgz
2.2.修改kafka配置文件
conf/server.properties复制3个副本,分布为conf/server1.properties,conf/server2.properties,conf/server3.properties
修改三个属性:
broker.id 此id不能重复
listeners 端口号
log.dirs 日志存放目录
server1.properties修改为
broker.id=1
listeners=PLAINTEXT://:9011
log.dirs=/data/software/kafka_2.12-2.5.0/logs/log1
server2.properties修改为
broker.id=2
listeners=PLAINTEXT://:9012
log.dirs=/data/software/kafka_2.12-2.5.0/logs/log2
server3.properties修改为
broker.id=3
listeners=PLAINTEXT://:9013
log.dirs=/data/software/kafka_2.12-2.5.0/logs/log3
2.3启动kafka
查看zookeeper的broker的id(参考1.4章节)
可以看到没有已启动的id

启动1个kafka的节点server1.properties
常规模式启动kafka
bin/kafka-server-start.sh config/server1.properties
进程守护模式启动kafka
nohup bin/kafka-server-start.sh config/server1.properties >/dev/null 2>&1 &
启动成功后,查看zookeeper的broker的id(参考1.4章节)
可以看到已经有一个节点1已启动

2.4关闭kafka的命令
只有一个kafka时,
bin/kafka-server-stop.sh
3.单节点kafka
3.1创建topic
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
3.2查看topic
bin/kafka-topics.sh --list --zookeeper localhost:2181
3.3发送消息
bin/kafka-console-producer.sh --broker-list localhost:9011 --topic test

3.4接收消息
bin/kafka-console-consumer.sh --bootstrap-server localhost:9011 --topic test --from-beginning

4.多节点kafka
4.1再启动两个kafka节点
由于2.2章节已配置了两个配置文件server2.properties和server3.properties
这里可以直接启动
nohup bin/kafka-server-start.sh config/server2.properties >/dev/null 2>&1 &
nohup bin/kafka-server-start.sh config/server3.properties >/dev/null 2>&1 &
参考1.4章节查看broker

可以看到节点2和3都已启动。
4.2创建3个副本的topic
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 1 --topic test3
4.3查看topic
bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic test3

第一行给出了所有 partition 的一个总结,每行给出了一个 partition 的信息。因为我们这个 topic 只有一个 partition 所以只有一行信息。
“leader” 负责响应给定 partition 的所有读和写请求。每个节点都会是从所有 partition 集合随机选定的一个子集的“leader”
“replicas” 是一个节点列表,包含所有复制了此 partition log 的节点,不管这个节点是否为 leader 也不管这个节点当前是否存活
“isr” 是当前处于同步状态的副本。这是“replicas”列表的一个子集表示当前处于存活状态并且与 leader 一致的节点
对比一下单节点的topic

4.4发送消息
bin/kafka-console-producer.sh --broker-list localhost:9011 --topic test3

4.5接收消息
bin/kafka-console-consumer.sh --bootstrap-server localhost:9011 --from-beginning --topic test3

浙公网安备 33010602011771号