部署准备
准备三台服务器
下载zookeeper kafka安装包
安装java-devel, 配置环境变量
关闭防火墙
zookeeper部署
[root@host1 opt]# tar -xf apache-zookeeper-3.6.0-bin.gz
[root@host1 opt]# cd apache-zookeeper-3.6.0-bin/
[root@host1 apache-zookeeper-3.6.0-bin]# mkdir data
[root@host1 apache-zookeeper-3.6.0-bin]# cd conf/
[root@host1 conf]# cp zoo_sample.cfg zoo.cfg
[root@host1 conf]# vim zoo.cfg
dataDir=/opt/apache-zookeeper-3.6.0-bin/data #修改datadir值
dataLogDir=/opt/apache-zookeeper-3.6.0-bin/log #增加dataLogDir
server.1=host1:2188:3188 #添加集群配置信息
server.2=host2:2188:3188
server.3=host3:2188:3188
:wq
[root@host1 ~]# touch /opt/apache-zookeeper-3.6.0-bin/data/myid
[root@host1 ~]# echo 1 > /opt/apache-zookeeper-3.6.0-bin/data/myid #第一台机器值为1,第二台机器值为2,以此类推
把文件夹复制到其他集群上,完成部署。
[root@host1 ~]# cd /opt/apache-zookeeper-3.6.0-bin/bin/
[root@host1 bin]# ./zkServer.sh #zkServer.sh简单用法,启动失败可以使用start-foreground查看失败日志
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/apache-zookeeper-3.6.0-bin/bin/../conf/zoo.cfg
Usage: ./zkServer.sh [--config <conf-dir>] {start|start-foreground|stop|version|restart|status|print-cmd}
[root@host1 bin]# ./zkServer.sh start # 启动zookeeper,显示STARED即为启动成功,每台机器都需要启动
[root@host1 bin]# ./zkServer.sh status # 查看zookeeper状态,显示leader或者follower,三台只有一个为leader,其余俩为follower
[root@host1 bin]# ./zkServer.sh stop # 停止zookeeper,显示STOP即为停止
kafka部署
[root@host1 opt]# tar -xf kafka_2.13-2.4.1.tgz
[root@host1 opt]# mv kafka_2.13-2.4.1 kafka
[root@host1 opt]# cd kafka/
[root@host1 kafka]# mkdir logs
[root@host1 kafka]# cd config/
[root@host1 config]# vim server.properties
broker.id=1
listeners=PLAINTEXT://192.168.116.128:9092
advertised.listeners=PLAINTEXT://host1:9092
log.dirs=/opt/kafka/logs
num.partitions=1 #partition数量
zookeeper.connect=host1:2181,host2:2181,host3:2181 #zookeeper配置
:wq
复制配置文件到每台机器,broker.id要保证不一样。
启动和停止服务:
[root@host1 ~]# /opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties >/dev/null 2>&1 & #启动服务
[1] 2861
[root@host1 ~]# kill -9 2861 #停止服务
kafka常用命令
1.kafka启动: /opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties >/dev/null 2>&1 &
2.创建topic: /opt/kafka/bin/kafka-topics.sh --create --partitions 1 --replication-factor 1 --zookeeper host1:2181 --topic test
3.查看kafka的topic:/opt/kafka/bin/kafka-topics.sh --zookeeper host1:2181 --list
4.查看kafka某个topic下partition信息: /opt/kafka/bin/kafka-topics.sh --describe --zookeeper host1:2181 --topic test
5.控制台向kafka生产数据: /opt/kafka/bin/kafka-console-producer.sh --broker-list host1:9092 --topic test
aaa
6.控制台消费kafka的数据: /opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server host2:9092 --topic test
aaa
8.增加topic的partition: /opt/kafka/bin/kafka-topics.sh --alter --topic test --zookeeper host1:2181 --partitions 3
9.删除topic,先进入zookeeper的命令模式:/opt/kafka/bin/zookeeper-shell.sh host1:2181
删除topic:rmr /brokers/topics/test