0


linux centos7部署zookeeper以及kafka

一、部署zookeeper集群

1.服务器配置,最好是在同一网段的IP

服务器IP地址主机名node1192.168.116.6zknode1node2192.168.116.16zknode2node3192.168.116.26zknode3
1.1改主机名

临时改主机名命令
hostname test1
永久修改主机名
hostnamectl set-hostname zknode1

注:要想更改后生效需要重启一下,我这里没有重启所以效果看不出来

2.服务器环境配置,所有机器都要操作,本文中案例均以主机1为例
2.1先关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
[root@n1 ~]# getenforce
Enforcing
[root@n1 ~]# setenforce 0
如果想永久更改selinux,就去编辑文件然后更改
vim /etc/selinux/config

更改前

更改后

2.2安装Java

yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel

如图所示:

安装完成后检验版本

[root@node1 ~]# java -version

这种情况就表示安装成功

2.3下载zookeeper安装包,我这里采用的是3.5.7版本,大家也可以换别的

地址如下:https://archive.apache.org/dist/zookeeper/zookeeper-3.5.7/apache-zookeeper-3.5.7-bin.tar.gz

其他版本链接:https://archive.apache.org/dist/zookeeper/

进入opt目录下

[root@n1 ~]# cd /opt
[root@n1 opt]wget https://archive.apache.org/dist/zookeeper/zookeeper-3.5.7/apache-zookeeper-3.5.7-bin.tar.gz

3.部署zookeeper,三台机器均须操作,以其中1主机为例

解压压缩包

[root@n1 opt]# tar -zxvf apache-zookeeper-3.5.7-bin.tar.gz
mv apache-zookeeper-3.5.7-bin /usr/local/zookeeper-3.5.7    #mv 相对路径 绝对路径
4.修改配置文件,三台机器均须操作
[root@n1 opt]# cd /usr/local/zookeeper-3.5.7/conf/
[root@n1 conf]# cp zoo_sample.cfg zoo.cfg                  //复制
[root@n1 conf]# vim zoo.cfg
# The number of milliseconds of each tick
tickTime=2000           #2行,通信心跳时间,Zookeeper服务器与客户端心跳时间,单位毫秒
# The number of ticks that the initial 
# synchronization phase can take
initLimit=10            #5行,Leader和Follower初始连接时能容忍的最多心跳数
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.
dataDir=/tmp/zookeeper     #12行,修改,指定保存Zookeeper中的数据的目录,目录需要单独创建
# the port at which the clients will connect
clientPort=2181

修改之后如图所示:

dataDir=/usr/local/zookeeper-3.5.7/data
dataLogDir=/usr/local/zookeeper-3.5.7/logs

将下面这一段添加到文件末尾,三台机器都要添加

server.1=192.168.116.6:3188:3288
server.2=192.168.116.16:3188:3288
server.3=192.168.116.26:3188:3288

3188是一个端口,是这个服务器Follower与集群中的Leader服务器交换信息的端口。

3288是备用端口,是万一集群中的Leader服务器挂了,需要一个端口来重新进行选举,选出一个新的Leader,而这个端口就是用来执行选举时服务器相互通信的端口。

5.创建所需的数据目录和日志目录,因为在上一步操作中你更改或添加了数据目录和日志目录,同样的三台机器都要操作
[root@n1 conf]# mkdir /usr/local/zookeeper-3.5.7/data
[root@n1 conf]# mkdir /usr/local/zookeeper-3.5.7/logs
6.创建myid文件,不同的机器对应的id不一样
[root@n1 conf]# echo 1 > /usr/local/zookeeper-3.5.7/data/myid  #1表示主机1,在主机1上操作
[root@n2 conf]# echo 2 > /usr/local/zookeeper-3.5.7/data/myid   #在主机2上操作
[root@n3 conf]# echo 3 > /usr/local/zookeeper-3.5.7/data/myid   #在主机3上操作
7.配置启动脚本(此处最好是三台机器同时进行,不要一台操作完成了再去操作另一台机器,另外此处的代码最好是手敲,如果要复制,复制完代码后请一定要检查没有缺少再进行下一步)
7.1编辑配置
[root@n1 conf]# vim /etc/init.d/zookeeper.sh
#!/bin/bash
#chkconfig:2345 20 90
#description:Zookeeper Service Control Script
ZK_HOME='/usr/local/zookeeper-3.5.7'
case $1 in
start)
    echo "---------- zookeeper 启动 ------------"
    $ZK_HOME/bin/zkServer.sh start
;;
stop)
    echo "---------- zookeeper 停止 ------------"
    $ZK_HOME/bin/zkServer.sh stop
;;
restart)
    echo "---------- zookeeper 重启 ------------"
    $ZK_HOME/bin/zkServer.sh restart
;;
status)
    echo "---------- zookeeper 状态 ------------"
    $ZK_HOME/bin/zkServer.sh status
;;
*)
    echo "Usage: $0 {start|stop|restart|status}"
esac
注:这里文件尽量不要直接复制,容易报错

配置完成后,使用chmod +x /etc/init.d/zookeeper.sh 加执行权限

7.2设置开机自启
[root@localhost conf]# chkconfig --add zookeeper
[root@localhost conf]# service zookeeper start
[root@localhost conf]# service zookeeper status

正常启动的情况如下图所示:

正常启动状态如下所示:

二、Kafka

1.环境:此过程服务器配置同上,防火墙以及selinux都要关闭
2.获取安装包,三台机器均须操作
[root@node1 ~]# cd /opt
[root@node1 opt]# wget --no-check-certificate https://archive.apache.org/dist/kafka/2.7.1/kafka_2.13-2.7.1.tgz

操作成功如下图所示:

此处我才用的版本是2.7.1

安装包链接:https://archive.apache.org/dist/kafka/2.7.1/kafka_2.13-2.7.1.tgz

若要获取其他版本:https://kafka.apache.org/downloads.html

3.部署Kafka
3.1解压并且编辑配置文件
[root@localhost opt]# tar zxvf kafka_2.13-2.7.1.tgz
[root@localhost opt]# mv kafka_2.13-2.7.1 /usr/local/kafka
[root@localhost opt]# cd /usr/local/kafka/config/
[root@localhost config]# cp server.properties{,.bak}
[root@localhost config]# vim server.properties       #修改配置文件
broker.id=1          #此处要修改,且三台机器不能一样,最好是按照你的机器编号来,我用的是1,2,3
listeners=PLAINTEXT://192.168.116.6:9092       #这里的IP为当前操作机器的IP地址,
log.dirs=/usr/local/kafka/logs
zookeeper.connect=192.168.116.6:2181,192.168.116.16:2181,192.168.116.26:2181
#此处一定要是你自己的IP,且主IP放前面
3.2修改环境配置,三台机器一起操作
[root@localhost config]# echo "export KAFKA_HOME=/usr/local/kafka" >> /etc/profile
[root@localhost config]# echo "export PATH=$PATH:$KAFKA_HOME/bin" >> /etc/profile
[root@localhost config]# source /etc/profile   #使配置生效
4.编辑Kafka脚本,此处三台机器也要一起操作

此处尽量不要复制,如果复制请一定要仔细校对

[root@localhost config]# vim /etc/init.d/kafka
#!/bin/bash
#chkconfig:2345 22 88
#description:Kafka Service Control Script
KAFKA_HOME='/usr/local/kafka'
case $1 in
start)
    echo "---------- Kafka 启动 ------------"
    ${KAFKA_HOME}/bin/kafka-server-start.sh -daemon ${KAFKA_HOME}/config/server.properties
;;
stop)
    echo "---------- Kafka 停止 ------------"
    ${KAFKA_HOME}/bin/kafka-server-stop.sh
;;
restart)
    $0 stop
    $0 start
;;
status)
    echo "---------- Kafka 状态 ------------"
    count=$(ps -ef | grep kafka | egrep -cv "grep|$$")
    if [ "$count" -eq 0 ];then
        echo "kafka is not running"
    else
        echo "kafka is running"
    fi
;;
*)
    echo "Usage: $0 {start|stop|restart|status}"
esac

脚本编写完成后,给脚本加上执行权限

[root@localhost config]# chmod +x /etc/init.d/kafka  #加权限
[root@localhost config]# chkconfig --add kafka       
[root@localhost config]# service kafka start         #启动Kafka
[root@localhost config]# service kafka status        #查看状态

正常情况如下图所示:

[root@localhost config]# netstat -natp |grep 9092    #查看端口情况

节点1情况如下:

节点2如下:

节点3如下:

5.一些简单的命令操作
5.1创建一个topic,并查看列表
[root@localhost config]# kafka-topics.sh --create --zookeeper 192.168.116.6:2181,192.168.116.16:2181,192.168.116.16:2181 --replication-factor 2 --partitions 3 --topic test
[root@localhost config]# kafka-topics.sh --list --zookeeper 192.168.116.6

结果如图所示:

5.2查看topic详细信息
[root@localhost config]# kafka-topics.sh --describe --zookeeper 192.168.116.6

结果如图所示:

[root@localhost config]# kafka-console-producer.sh --broker-list 192.168.116.6:9092 --topic test   

结果如图所示:

发布消息

[root@localhost config]# kafka-console-producer.sh --broker-list 192.168.116.6:9092 --topic test
>test
[2024-08-04 19:43:41,893] WARN [Producer clientId=console-producer] Error while fetching metadata with correlation id 3 : {test=LEADER_NOT_AVAILABLE} (org.apache.kafka.clients.NetworkClient)
>abc

还有很多操作,此处不再一一赘述

标签: linux zookeeper kafka

本文转载自: https://blog.csdn.net/m0_52310738/article/details/140911253
版权归原作者 修乙 所有, 如有侵权,请联系我们删除。

“linux centos7部署zookeeper以及kafka”的评论:

还没有评论