准备工作:
1. 准备3台机器(Linux(ubuntu~16.04.4)),IP地址分别为:192.168.244.201,192.168.244.202,192.168.244.203
2. 下载kafka稳定版本,我的版本为:kafka_2.9.2-0.8.1.1.tgz
3. 分别解压放入到想安装的目录下,我的目录为:/data/apache 解压命令为:tar -xzf kafka_2.9.2-0.8.1.1.tgz
一、搭建zookeeper集群 安装目录/data/apache/zookeeper-3.4.9
由于zk以前已经安装过了,参考http://lib.csdn.net/article/hbase/50254,里面有详细的zk集群搭建步骤。
截图zk启动的命令,以及查看状态的命令,防止忘记
1.201启动的信息
/data/apache/zookeeper-3.4.9/bin/zkServer.sh start
/data/apache/zookeeper-3.4.9/bin/zkServer.sh status
/data/apache/zookeeper-3.4.9/bin/zkServer.sh stop
2.202启动的信息
下面的一句话引用网络,再结合上面的信息,后面是另外一个202启动了:
由于ZooKeeper集群启动的时候,每个结点都试图去连接集群中的其它结点,先启动的肯定连不上后面还没启动的,所以打印出来的部分的异常是可以忽略的。集群在选出一个Leader后,最后稳定了。其他结点可能也出现类似问题,属于正常。
至此,zookeeper集群搭建完成。
二、进入主题kafka集群的搭建
1. 下载并解压Kafka
kafka tgz 下载地址http://kafka.apache.org/downloads
cd /data/apache 执行tar -xzf kafka_2.12-0.10.2.0.tgz
2. 修改配置文件
log.dirs=/data/usr/kafka_logs
3.复制到其它两台机器上
scp -r /data/apache/kafka_2.12-0.10.2.0/ jack@slave1:/data/apache/
scp -r /data/apache/kafka_2.12-0.10.2.0/ jack@slave2:/data/apache/
4.创建topic并查看
./kafka-topics.sh --create --zookeeper 192.168.244.201:2181 --replication-factor 2 --partitions 2 --topic test-replicated-topic
./kafka-console-consumer.sh --zookeeper 192.168.244.201:2181 --topic stock --from-beginning
5.停机
ps -ef|grep server.properties
pkill -9 -f server.properties
6.启动
/data/apache/kafka_2.12-0.10.2.0/bin/kafka-server-start.sh /data/apache/kafka_2.12-0.10.2.0/config/server.properties &
7.彻底删除Kafka中的topic(摘抄于http://blog.csdn.net/fengzheku/article/details/50585972)
1、删除kafka存储目录(server.properties文件log.dirs配置,默认为"/tmp/kafka-logs")相关topic目录
2、Kafka 删除topic的命令是:
./bin/kafka-topics --delete --zookeeper 【zookeeper server】 --topic 【topic name】
如果kafaka启动时加载的配置文件中server.properties没有配置delete.topic.enable=true,那么此时的删除并不是真正的删除,而是把topic标记为:marked for deletion
你可以通过命令:./bin/kafka-topics --zookeeper 【zookeeper server】 --list 来查看所有topic
此时你若想真正删除它,可以如下操作:
(1)登录zookeeper客户端:命令:/data/apache/zookeeper-3.4.9/bin/zkCli.sh
(2)找到topic所在的目录:ls /brokers/topics
(3)找到要删除的topic,执行命令:rmr /brokers/topics/【topic name】即可,此时topic被彻底删除。
另外被标记为marked for deletion的topic你可以在zookeeper客户端中通过命令获得:ls /admin/delete_topics/【topic name】,
如果你删除了此处的topic,那么marked for deletion 标记消失
zookeeper 的config中也有有关topic的信息: ls /config/topics/【topic name】暂时不知道有什么用
总结:
彻底删除topic:
1、删除kafka存储目录(server.properties文件log.dirs配置,默认为"/tmp/kafka-logs")相关topic目录
2、如果配置了delete.topic.enable=true直接通过命令删除,如果命令删除不掉,直接通过zookeeper-client 删除掉broker下的topic即可。