kafka+zk 集群--3个broker 3个zookeeper

http://blog.csdn.net/yehuang_0801/article/details/62891971node

准备工做:apache

1. 准备3台机器(Linux(ubuntu~16.04.4)),IP地址分别为:192.168.244.201,192.168.244.202,192.168.244.203ubuntu

 

2. 下载kafka稳定版本,个人版本为:kafka_2.9.2-0.8.1.1.tgz 网络

3. 分别解压放入到想安装的目录下,个人目录为:/data/apache 解压命令为:tar -xzf kafka_2.9.2-0.8.1.1.tgzapp

1、搭建zookeeper集群spa

安装目录/data/apache/zookeeper-3.4.9.net

因为zk之前已经安装过了,参考http://lib.csdn.NET/article/Hbase/50254,里面有详细的zk集群搭建步骤。server

截图zk启动的命令,以及查看状态的命令,防止忘记得意blog

1.201启动的信息ip

[plain] view plain copy

  1. /data/apache/zookeeper-3.4.9/bin/zkServer.sh start  

[plain] view plain copy

  1. /data/apache/zookeeper-3.4.9/bin/zkServer.sh status  

[plain] view plain copy

  1. /data/apache/zookeeper-3.4.9/bin/zkServer.sh stop  

2.202启动的信息

下面的一句话引用网络,再结合上面的信息,后面是另一个202启动了:

因为ZooKeeper集群启动的时候,每一个结点都试图去链接集群中的其它结点,先启动的确定连不上后面还没启动的,因此打印出来的部分的异常是能够忽略的。集群在选出一个Leader后,最后稳定了。其余结点可能也出现相似问题,属于正常。

至此,zookeeper集群搭建完成。

2、进入主题kafka集群的搭建

1. 下载并解压Kafka

kafka tgz 下载地址http://kafka.apache.org/downloads

 

cd /data/apache 执行tar -xzf kafka_2.12-0.10.2.0.tgz
 

2. 修改配置文件

修改 conf/server.properties

 

zookeeper.connect=192.168.244.201:2181,192.168.244.202:2181,192.168.244.203:2181

 

broker.id分别改为

broker.id=201

broker.id=202

broker.id=203

host.name分别改为(若是不改,client访问集群时,若是没在hosts配置对应机器的 hostname,访问将会报错)

host.name=192.168.244.201

host.name=192.168.244.202

host.name=192.168.244.203

可根据需求修改

port: broker节点使用端口号 默认 9092
log.dir: 消息目录位置

 

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-topics.sh --describe --zookeeper 192.168.244.201:2181 --topic my-replicated-topic
./kafka-topics.sh --list --zookeeper 192.168.244.201:2181
./kafka-topics.sh --create --zookeeper 192.168.244.201:2181 --replication-factor 2 --partitions 2 --topic producer_test


#查看建立的Topic
./kafka-topics.sh --list --zookeeper node-1:2181
#查看相应Topic的状况
./kafka-topics.sh --describe --zookeeper node-1:2181 --topic test
#发送消息
./kafka-console-producer.sh --broker-list 192.168.244.201:9092 --topic stock
#接收消息

./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)

 

一、删除kafka存储目录(server.properties文件log.dirs配置,默认为"/tmp/kafka-logs")相关topic目录

二、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:

 一、删除kafka存储目录(server.properties文件log.dirs配置,默认为"/tmp/kafka-logs")相关topic目录

 二、若是配置了delete.topic.enable=true直接经过命令删除,若是命令删除不掉,直接经过zookeeper-client 删除掉broker下的topic便可。

相关文章
相关标签/搜索