zookeeper/kafka集群搭建

以3台机器为例,进行配置。现在有3台机器,ip地址分别为

· 192.168.1.50

· 192.168.1.51

· 192.168.1.52

1、配置zookeeper集群

首先下载zookeeper,并解压至每台机器的适当的目录中。过程百度:

地址:http://mirrors.hust.edu.cn/apache/zookeeper/

解压,进入conf目录下:

cp zoo_sample.cfg zoo.cfg

vi zoo.cfg

修改:

dataDir=/opt/zookeeper-3.4.10/data

dataLogDir=/opt/zookeeper-3.4.10/logs

加入:

#cluster config

server.1=192.168.1.50:2888:3888

server.2=192.168.1.51:2888:3888

server.3=192.168.1.52:2888:3888

解释:1,2,3是定义的机器编号

2888和3888是zookeeper之间通讯(选举leader等)时所使用的端口。

在每台机器的zookeeper所配置的data目录下,建立myid文件。使用myid为当前机器分配一个编号。 执行:

192.168.1.50服务器上:echo ‘1’ > myid

192.168.1.51服务器上:echo ‘2’ > myid

192.168.1.52服务器上:echo ‘3’ > myid

在.bash_profile文件中增加zookeeper配置:vi ~/.bash_profile

export ZOOKEEPER_HOME=/opt/zookeeper-3.4.10

export PATH=$ZOOKEEPER_HOME/bin:$PATH

执行.bash_profile source .bash_profile

启动zookeeper :./zkServer.sh start

zkServer.sh start 启动zk

zkServer.sh stop 停止zk

zkServer.sh status 查看zk状态

tail -500f zookeeper.out 查看zk的输出文件

问题:

Using config: /opt/zookeeper-3.4.10/bin/../conf/zoo.cfg Error contacting service. It is probably not……

解决办法:

service iptables stop 关闭防火墙

再启动

查看zookeeper状态

/zkServer.sh status

ZooKeeper JMX enabled by default

Using config: /opt/zookeeper-3.4.10/bin/../conf/zoo.cfg

Mode: follower

显示follower或者leader Ok

2、kafka集群配置

解压 tar -zxvf kafka_2.11-0.10.0.1.tgz -C /opt/

进入配置文件目录cd /opt/kafka_2..10.0.1/config/

修改kafka配置:server.properties

broker.id = 0集群中的编号和zk的myid一样

port = 9092 当前kafka对外的默认端口

host.name = 192.168.0.1 这个参数默认是关闭的,需要手动配置,服务器本地Ip

log.dirs = /opt/kafka_2.11-0.10.0.1/kafkalogs/ 目录存放位置,方便查看

zookeeper.connect = localhost:2181,localhost:2181.. 设置zookeeper集群连接端口

常用命令:

启动kafka服务:

./kafka-server-start.sh -daemon ../config/server.properties

查看当前Kafka集群中Topic的情况

bin/kafka-topics.sh –list –zookeeper127.0.0.1:2181

查看Topic的分区和副本情况

bin/kafka-topics.sh –describe –zookeeper 127.0.0.1:2181 –topic test0

创建Topic

bin/kafka-topics.sh –create –topic test0–zookeeper 127.0.0.1:2181 –config max.message.bytes=12800000 –config flush.messages=1 –partitions 5 –replication-factor 1

删除kafka的topic

bin/kafka-topics.sh –delete –zookeeper 127.0.0.1:2181 –topic test0

删除kafka中该topic相关的目录

在server.properties中找到配置log.dirs,把该目录下test0相关的目录删掉

查看topic消费到的offset

bin/kafka-run-class.sh kafka.tools.GetOffsetShell –broker-list 127.0.0.1:9092 –topic test0 –time -1

查看topic各个分区的消息的信息

bin/kafka-run-class.sh kafka.tools.ConsumerOffsetChecker –group testgroup –topic test0 –zookeeper 127.0.0.1:2181

修改topic的partition数量(只能增加不能减少)

bin/kafka-topics.sh –alter –zookeeper 127.0.0.1:2183 –partitions 10 –topic test0

修改topic的副本数

自己写一个文件addReplicas.json,文件的内容是JSON格式的,比如:

{

“version”: 1,

“partitions”: [

{

“topic”: “test0”,

“partition”: 0,

“replicas”: [

1,2

]

},

{

“topic”: “test0”,

“partition”: 1,

“replicas”: [

1,2,3

]

},

{

“topic”: “test0”,

“partition”: 2,

“replicas”: [

1,2,3

]

}

]

}

运行:

bin/kafka-reassign-partitions.sh –zookeeper 127.0.0.1:9092 –reassignment-json-file addReplicas.json –execute

    原文作者:冷月无声
    原文地址: https://zhuanlan.zhihu.com/p/36921408
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞