zookeeper 和 kafka 搭建集群步骤:
操作系统:linuxcentos7
准备3台机器,3个IP:
192.168.211.149 es01
192.168.211.137 es02
192.168.211.132 es03
zookeeper版本号:zookeeper-3.4.5
kafka版本号:kafka_2.13-3.1.0
1.搭建zookeeper集群
1.1.上传软件包至 /opt 目录并解压
1.2.修改zoo.cfg内容
cd /opt/zookeeper-3.4.5/conf/
cp zoo_sample.cfg zoo/cfg
vi zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/opt/zk/data
dataLogDir=/opt/zk/logs
clientPort=2181
autopurge.snapRetainCount=3
autopurge.purgeInterval=1
server.1=192.168.211.149:2888:3888
server.2=192.168.211.137:2888:3888
server.3=192.168.211.132:2888:3888
1.3 修改完成后,可以把这个文件复制到另外两台机器同样的目录中,命令如下:
scp /opt/zookeeper-3.4.5/conf/zoo.cfg root@192.168.211.137:/opt/zookeeper-3.4.5/conf/
输入yes 输入137机器的密码即可
scp /opt/zookeeper-3.4.5/conf/zoo.cfg root@192.168.211.132:/opt/zookeeper-3.4.5/conf/
输入yes 输入132机器的密码即可
1.4 3台机器需要创建目录并创建myid:
mkdir -p /opt/zk/data
mkdir -p /opt/zk/logs
cd /opt/zk/data
es01 输入:echo 1 >myid
es02 输入:echo 2 >myid
es03 输入:echo 3 >myid
1.5 启动zookeeper
cd /opt/zookeeper-3.4.5/bin
./zkServer.sh start
3台机器启动后,输入:jps 查看是否有进程,如有进程,则启动成功
情况1:如出现以下情况(本次是03节点出现这种情况)
需要打开目录:/tmp/hsperfdata_es03 看一下是否存在4420 这个文件
存在 rm -rf 4420 删除即可
情况2.输入:jps 有如下报错:
需要执行命令:yum install -y java-1.8.0-openjdk-devel
安装完毕,重新输入jps 即可。
查看角色命令:
./kServer.sh status
3台机器中1台出现:Mode:leader 另外2台出现:Mode:follower
即zookeeper集群安装并启动成功
2. 安装kafka
2.1.上传软件包至 /opt 目录并解压
2.2.修改zoo.cfg内容
cd /opt/kafka_2.13-3.1.0/conf/
vi server.properties
broker.id=3
listeners=PLAINTEXT://192.168.211.132:9092
zookeeper.connect=192.168.211.149:2181,192.168.211.137:2181,192.168.211.132:2181
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/opt/kafka_2.13-3.1.0/logs
num.partitions=1
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
zookeeper.connect=localhost:2181
zookeeper.connection.timeout.ms=18000
group.initial.rebalance.delay.ms=0
scp /opt/kafka_2.13-3.1.0/config/server.properties root@192.168.211.137:/optkafka_2.13-3.1.0/config/
输入yes 输入137机器的密码即可
scp /opt/kafka_2.13-3.1.0/config/server.properties root@192.168.211.132:/optkafka_2.13-3.1.0/config/
输入yes 输入132机器的密码即可
传输完成后,打开另外两台机器这个文件,修改该文件的第1-2行,id 即myid的内容,listeners后边跟本主机的IP
完成后,启动kafka,命令如下:
nohup /opt/kafka_2.11-0.10.0.1/bin/kafka-server-start.sh /opt/kafka_2.11-0.10.0.1/config/server.properties &>> /opt/kafka_2.11-0.10.0.1/kafka.log &
输入:jps
创建主题:
./bin/kafka-topics.sh --bootstrap-server 192.168.211.149:9092,192.168.211.137:9092,192.168.211.132:9092 --create --topic wozaijia --partitions 2 --replication-factor 2
备注说明:
:9092是端口号
wozaijia是主题名
partitions 2 是2个分区
replication-factor 2 副本2个
打开生产端,命令:
./bin/kafka-console-producer.sh --broker-list 192.168.211.149:9092 --topic wozaijia
备注说明:
kafka-console-producer.sh 生产端的脚本
broker-list broker列表
9092 端口号
wozaijia 主题名称
打开消费端,命令:
./bin/kafka-console-consumer.sh --bootstrap-server 192.168.211.149:9092 --topic wozaijia -- from-beginning
备注说明:
kafka-console-consumer.sh 消费端的脚本
bootstrap-server 服务端
9092 端口号
wozaijia 主题名称
-- from-beginning 把消费端之前输出的再输出出来
在生产端输入内容,在消费端输出相同的内容,即kafka集群安装并启动成功!
3. 打开zookeeper的zkCli.sh 查询kafka的信息
topic:wozaiijia 即是上个步骤新建成功的主题。