搭建kafka集群

Posted 北极熊129

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了搭建kafka集群相关的知识,希望对你有一定的参考价值。

前言:

按照kafka的文档,搭建一个三个host的集群。当然和kafka的文档还是有区别的:

     1). 未使用kafka自带的zookeeper

     2). kafka文档是一个host的三个进程, 这里是使用三个host(vm),每个host运行一个kafka

     准备:

           三个vm,分别为node1, node2, node3。 centos 7.3 (之前在弄docker,所以就用了7.3的版本)

           /etc/hosts(三个vm)

192.168.1.121  node1
192.168.1.122  node2
192.168.1.123  node3

 

Let‘s GO!

一. 搭建ZooKeeper集群

zookeeper集群相对简单,要准备两个文件:

       conf/zoo.cfg, myid(所在目录由conf/zoo.cfg里的dataDir来指定)

conf/zoo.cfg

dataDir=/data/zookeeper
...
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888

 node1: /data/zookeeper/myid

1

node2: /data/zookeeper/myid

2

node3: /data/zookeeper/myid

3

启动(三台vm都启动)

 # bin/zkServer.sh start

查看zookeeper是leader还是follower

# bin/zkServer.sh status
# Mode: leader( or follower) 

关闭

# bin/zkServer.sh stop

 


二.搭建kafka集群
解压,

# tar zvxf kafka.....tar.gz


三台vm都创建目录 /data/kafka-log:

# mkdir /data/kafka-log

 

配置文件 config/server.properties

  node1:

broker.id=1
listeners=PLAINTEXT://node1:9092
log.dir=/data/kafka-log
zookeeper.connect=node1:2181,node2:2181,node3:2181

node2:

broker.id=2
listeners=PLAINTEXT://node2:9092
log.dir=/data/kafka-log
zookeeper.connect=node1:2181,node2:2181,node3:2181

node3:

broker.id=3
listeners=PLAINTEXT://node3:9092
log.dir=/data/kafka-log
zookeeper.connect=node1:2181,node2:2181,node3:2181


启动kafka不需要指定zookeeper, 三台vm

bin/kafka-server-start.sh config/server.property &

因为vm内存1G, kafka-server-start.sh默认为1G, 所以启动显示内存不足,改 bin/kafka-server-start.sh:

if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
    export KAFKA_HEAP_OPTS="-Xmx256M -Xms128M"
fi

这样三台vm就启动了。

建topic

bin/kafka-topics.sh --create --zookeeper node1:2181,node2:2181,node3:2181 --replication-factor 2 --partitions 1 --topic my-replicated-topic
Created topic "my-replicated-topic".


看了一下zookeeper, topic保存在zookeeper的 /brokers节点

向topic输入数据:

bin/kafka-console-producer.sh --broker-list node1:9092,node2:9092,node3:9092 --topic my-replicated-topic
> my test message 1
> my test messsage 2
> this is a test message

ctrl + c 退出


消费者取出数据:

bin/kafka-console-consumer.sh --bootstrap-server node3:9092  --from-beginning --topic my-replicated-topic
...
my test message 1
my test messsage 2
this is a test message

 

流水帐似的记录,只为忘了的时候,看一眼,提个醒。



以上是关于搭建kafka集群的主要内容,如果未能解决你的问题,请参考以下文章

Kafka Kafka集群搭建

kafka集群搭建和zk集群搭建

Docker搭建Kafka测试集群

从零开始搭建Kafka集群遇到的问题

Docker搭建kafka集群

Kafka + Zookeeper集群搭建