操作系统:
centos版本 | 7.4 |
防火墙 | 关闭 |
selinux | 关闭 |
java版本 | 1.8 |
kafkazk1 | 192.168.10.129 |
[root@kafkazk1 ~]# wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz
[root@kafkazk1 ~]# tar zxf zookeeper-3.4.14.tar.gz -C /usr/local/
[root@kafkazk1 ~]# cd /usr/local/zookeeper-3.4.14/conf/
[root@kafkazk1 conf]# cp zoo_sample.cfg zoo.cfg
[root@kafkazk1 conf]# vim zoo.cfg
#设置控制心态和超时,时间为2000毫秒
tickTime=2000
#设置心态时间间隔数,10表示10*2000=20秒
initLimit=10
#设置请求和应答时间长度最初不能超过多少个tickTime的时间长度,总的时间长度时5*2000=10秒
syncLimit=5
#设置服务进程监听的TCP端口,默认为2181
clientPort=2181
#配置存储快照文件的目录
dataDir=/data/zookeeper
#server.A=B:C:D,其中A时一个数字,表示这是第几个服务器;B时这个服务器的IP地址;C表示的时这个服务器与集群中的Leader服务器通信的端口;D表示如果集群中的Leader服务器宕机了,需要一个端口来重新进行选举,选出一个新的Leader,而这个端口就是用来执行选举时服务器相互通信的端口
server.1=192.168.10.129:2888:3888
[root@kafkazk1 conf]# mkdir -p /data/zookeeper
[root@kafkazk1 bin]# vim /etc/profile
export ZOOKEEPER_HOME=/usr/local/zookeeper-3.4.14
export PATH=$ZOOKEEPER_HOME/bin:$PATH
[root@kafkazk1 bin]# source /etc/profile
[root@kafkazk1 zookeeper-3.4.14]# yum -y install java
[root@kafkazk1 zookeeper-3.4.14]# zkServer.sh start
[root@kafkazk1 ~]# wget https://archive.apache.org/dist/kafka/2.1.0/kafka_2.12-2.1.0.tgz
[root@kafkazk1 ~]# gzip -dv kafka_2.12-2.1.0.tgz
[root@kafkazk1 ~]# tar -xvf kafka_2.12-2.1.0.tar
[root@kafkazk1 ~]# mv kafka_2.12-2.1.0 /usr/local/kafka
[root@kafkazk1 ~]# vim /usr/local/kafka/config/server.properties
#每一个broker在集群中的唯一表示
broker.id=1
#设置kafka的监听地址与端口
listeners=PLAINTEXT://192.168.10.129:9092
#设置kafka保持的数据位置
log.dirs=/usr/local/kafka/kafka-logs
设置topic有多少个分区
num.partitions=6
#设置kafka中消息保持的时间
log.retention.hours=60
#配置partition中每个segment数据文件的大小,默认时1GB
log.segment.bytes=1073741824
#设置zookeeper所在的地址
zookeeper.connect=192.168.10.129:2181
#设置是否自动创建topic
auto.create.topics.enable=true
#设置kafka自动删除物理上面的topic
delete.topic.enable=true
[root@kafkazk1 ~]# cd /usr/local/kafka/
[root@kafkazk1 kafka]# nohup bin/kafka-server-start.sh config/server.properties &
[root@kafkazk1 kafka]# netstat -tunlp|grep 2181
tcp6 0 0 :::2181 :::* LISTEN 1618/java
[root@kafkazk1 bin]# netstat -tunlp|grep 9092
#创建一个topic
[root@kafkazk1 bin]# ./kafka-topics.sh -create --zookeeper 192.168.10.129:2181 --replication-factor 1 --partitions 3 --topic testtopic
[root@kafkazk1 bin]# ./kafka-topics.sh -create --zookeeper 192.168.10.129:2181 --replication-factor 1 --partitions 1 --topic test
#查看创建的topic
[root@kafkazk1 bin]# ./kafka-topics.sh --zookeeper 192.168.10.129:2181 --list
#测试生产者消息
[root@kafkazk1 bin]# ./kafka-console-producer.sh --broker-list 192.168.10.129:9092 --topic testtopic
#测试消费者消息
[root@kafkazk1 bin]# ./kafka-console-consumer.sh --bootstrap-server 192.168.10.129:9092 --topic testtopic
#删除topic后会有个提示,如果kafka没有设置delete.topic.enable为true的话,那么仅仅是个标记删除,而非真正的删除
[root@kafkazk1 bin]# ./kafka-topics.sh --zookeeper 192.168.10.129:2181 --delete --topic testtopic
#查看删除的结果
[root@kafkazk1 bin]# ./kafka-topics.sh --zookeeper 192.168.10.129:2181 --list