集群环境越来越普遍了,本教程练习在单台centos主机上做zookeeper和kafka集成集群环境:zookeeper和kafka各三个节点,主要是配置,重点看配置,jdk安装部分略过,亲测通过。
主机:CentOS7 64位linux系统
JDK:jdk1.8
Zookeeper:zookeeper-3.4.10.tar.gz 下载网址:http://mirror.bit.edu.cn/apache/zookeeper/
kafka:kafka_2.11-1.0.0.tgz 下载地址:http://kafka.apache.org/downloads
1.1、目录结构
搭建的Zookeeper集群准备设置端口为2181/2182/2183,为了便于维护,按照端口号新建目录,并新建子目录data和dataLog,然后把解压后的Zookeeper文件目录拷贝到2181/2182/2183三个目录下,目录结构如图:
1.2、配置文件修改
修改配置文件zookeeper-3.4.10/conf/zoo.cfg,各项说明摘抄自网络,具体每个节点的配置见截图
2181/zookeeper-3.4.10/conf/zoo.cfg的配置
2182/zookeeper-3.4.10/conf/zoo.cfg的配置
2183/zookeeper-3.4.10/conf/zoo.cfg的配置
1.3、生成myid文件
在每个data子目录下生成myid文件,文件内容为集群中指定的值,如server.1=192.168.213.4:2888:3888就需指定myid的文件内容为1,server.2=192.168.213.4:2788:3788就需指定myid的文件内容为2,以此类推,具体配置见截图
1.4、命令执行效果
通过命令“2181/zookeeper-3.4.10/bin/zkServer.sh start”分别启动三个节点
通过命令“2183/zookeeper-3.4.10/bin/zkServer.sh status”分别查看三个节点的状态,可以看出2182被选举为了主节点
2.1、目录结构
新建三个目录分别命名为kafka1、kafka2、kafka3,并分别创建dataLog子目录,目录结构如图所示
2.2、配置文件修改
修改配置文件“kafka_2.11-1.0.0/config/server.properties”,由于配置文件内容太长,仅列出需要修改的项:
kafka1节点
broker.id=1
listeners=PLAINTEXT://192.168.213.4:9092
port=9092
host.name=192.168.213.4
log.dirs=/home/tmp/kafka1/dataLog
zookeeper.connect=192.168.213.4:2181,192.168.213.4:2182,192.168.213.4:2183
kafka2节点
broker.id=2
listeners=PLAINTEXT://192.168.213.4:9093
port=9093
host.name=192.168.213.4
log.dirs=/home/tmp/kafka2/dataLog
zookeeper.connect=192.168.213.4:2181,192.168.213.4:2182,192.168.213.4:2183
kafka3节点
broker.id=3
listeners=PLAINTEXT://192.168.213.4:9094
port=9094
host.name=192.168.213.4
log.dirs=/home/tmp/kafka3/dataLog
zookeeper.connect=192.168.213.4:2181,192.168.213.4:2182,192.168.213.4:2183
2.3、命令执行效果
启动三个kafka节点,创建主题test后分别在三个节点上发送消息,打开一个消费窗口接收消息。
--启动kafka命令(每个节点都要启动)
kafka1/kafka_2.11-1.0.0/bin/kafka-server-start.sh kafka1/kafka_2.11-1.0.0/config/server.properties
kafka2/kafka_2.11-1.0.0/bin/kafka-server-start.sh kafka2/kafka_2.11-1.0.0/config/server.properties
kafka3/kafka_2.11-1.0.0/bin/kafka-server-start.sh kafka3/kafka_2.11-1.0.0/config/server.properties
--创建主题、列出主题
kafka3/kafka_2.11-1.0.0/bin/kafka-topics.sh --create --zookeeper 192.168.213.4:2181,192.168.213.4:2182,192.168.213.4:2183 --replication-factor 1 --partitions 1 --topic test
kafka3/kafka_2.11-1.0.0/bin/kafka-topics.sh --list --zookeeper 192.168.213.4:2181,192.168.213.4:2182,192.168.213.4:2183
--根据主题发送消息
kafka1/kafka_2.11-1.0.0/bin/kafka-console-producer.sh --broker-list 192.168.213.4:9092 --topic test
kafka2/kafka_2.11-1.0.0/bin/kafka-console-producer.sh --broker-list 192.168.213.4:9093 --topic test
kafka3/kafka_2.11-1.0.0/bin/kafka-console-producer.sh --broker-list 192.168.213.4:9094 --topic test
--根据主题接收消息
kafka3/kafka_2.11-1.0.0/bin/kafka-console-consumer.sh --zookeeper 192.168.213.4:2181,192.168.213.4:2182,192.168.213.4:2183 --topic test --from-beginning
发送消息
接收消息(三个节点发送的消息都已接收到)
本人小白一个,纯粹是练手,亲测通过,欢迎讨论指正