JDK环境
Zookeeper环境的配置
kafka依赖Zookeeper来实施对元数据信息的管理,包括集群,broker,主题,分区等
step1:
在官网下载对应的安装包 zookeeper.apache.org/releases.ht…
step2:
创建环境目录(对应dataDir的配置)
~ mkdir /Users/user/Documents/data/zoo/zk1
~ mkdir /Users/user/Documents/data/zoo/zk2
~ mkdir /Users/user/Documents/data/zoo/zk3
#新建myid文件
~ echo "1" > /Users/user/Documents/data/zoo/zk1/myid
~ echo "2" > /Users/user/Documents/data/zoo/zk2/myid
~ echo "3" > /Users/user/Documents/data/zoo/zk3/myid
复制 conf的zoo_sample.cfg
cp zoo_sample.cfg zoo1.cfg
(1) 修改dataDir,clientPort
(2) 增加集群的实例 server.X 其中X表示每个目标中的myid的值
zoo1.cfg :
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/Users/user/Documents/data/zoo/zk1
clientPort=2191
server.1=localhost:2888:3888
server.2=localhost:2889:3889
server.3=localhost:2890:3890
admin.serverPort=8888
zoo2.cfg :
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/Users/user/Documents/data/zoo/zk2
clientPort=2192
server.1=localhost:2888:3888
server.2=localhost:2889:3889
server.3=localhost:2890:3890
admin.serverPort=8888
zoo3.cfg :
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/Users/user/Documents/data/zoo/zk3
clientPort=2193
server.1=localhost:2888:3888
server.2=localhost:2889:3889
server.3=localhost:2890:3890
admin.serverPort=8888
step3:
以上Zookeeper的环境配置好了,开始启动配置。
./zkServer.sh start zoo1.cfg
./zkServer.sh start zoo2.cfg
./zkServer.sh start zoo3.cfg
查看进程: jps
#zk的服务显示为QuorumPeerMain
5422 QuorumPeerMain
5395 QuorumPeerMain
5463 QuorumPeerMain
5494 Jps
查看节点状态:
~ ../bin/zkServer.sh status zoo1.cfg
JMX enabled by default Using config: /home/conan/toolkit/zookeeper345/bin/../conf/zk1.cfg
Mode: follower
~ ../bin/zkServer.sh status z002.cfg
JMX enabled by default Using config: /home/conan/toolkit/zookeeper345/bin/../conf/zk2.cfg
Mode: leader
~ ../bin/zkServer.sh status zk3.cfg
JMX enabled by default Using config: /home/conan/toolkit/zookeeper345/bin/../conf/zk3.cfg
Mode: follower
我们可以看到zk2是leader,zk1和zk3是follower
Kafka环境的配置
step1: 下载kafka的安装包
step2: 复制多份config目录下的server.properties
修改配置:
- broker.id = 0 broker的编号,每个集群中的broker编号要设置不同
- listeners=PLAINTEXT://:9092 broker对外提供的服务入口地址
- log.dirs=/tmp/kafka-logs/kafka1 存放消息日志文件的地址
- zookeeper.connect=localhost:2191,localhost:2192,localhost:2193 zk集群地址
step3: 启动
bin/kafka-server-start.sh config/server01.properties
bin/kafka-server-start.sh config/server02.properties
bin/kafka-server-start.sh config/server03.properties
如果需要后台处理:
bin/kafka-server-start.sh -daemon config/server01.properties
或:
bin/kafka-server-start.sh config/server01.properties &
使用 jps 查看相关的进程
step4: 测试:创建topic
bin/kafka-topics.sh --zookeeper localhost:2191 --create --topic topic-demo --replication-factor 3 --partitions 4
-- zookeeper 指定kafka所连接的zookeeper服务地址
-- topic 需要创建的主题名称
-- replication-factor 副本因子
-- partitions 分区的个数
-- create 创建主题的动作指令
step4: 测试:查看已经创建的topic
bin/kafka-topics.sh --zookeeper localhost:2181 --describe --topic topic-demo
step5: 测试:重新打开一个shell窗口进行消费消息
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic topic-demo
-- bootstrap-server 指定连接的kafka集群地址 -- topic 指定需消费者订阅的主题
step6: 测试:重新打开一个shell窗口进行发送消息
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic topic-demo
-- broker-list 指定连接的kafka集群地址 -- topic 指定需发送者发送消息的主题
tips :
(1) 写一个脚本,同时启动三个zookeeper服务
赋予权限:chmod +x start-zookeeper-three.sh
(2) zookeeper的一些基本的命令
- 开启服务 : ./zkServer.sh start zoo1.cfg
- 开启服务查看具体信息 : ./zkServer.sh start-foreground zoo1.cfg
- 查看服务状态 : ./zkServer.sh status zoo1.cfg
- 关闭服务 : ./zkServer.sh stop zoo1.cfg
- 打开客户端 : sh zkCli.sh
- 创建一个节点 : create [-s] [-e] path data cal —— > create /zk-book 123 (创建一个叫做/zk-book的节点,并且节点的数据内容是123)
- 读取数据 : get path [watch] — — > get /zk-book
- 更新数据 : set path data [version] — — > set /zk-book 456 (版本号会更新)
- 删除数据 : delete path [version] — — > delete /zk-book