首页 > 系统相关 >linux centos7部署zookeeper以及kafka

linux centos7部署zookeeper以及kafka

时间:2024-08-04 21:52:49浏览次数:17  
标签:root zookeeper kafka centos7 3.5 config localhost

一、部署zookeeper集群

1.服务器配置,最好是在同一网段的IP
服务器IP地址主机名
node1192.168.116.6zknode1
node2192.168.116.16zknode2
node3192.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

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

标签:root,zookeeper,kafka,centos7,3.5,config,localhost
From: https://blog.csdn.net/m0_52310738/article/details/140911253

相关文章

  • go高并发之路——消息中间件kafka(中)
    接着上篇,我们继续聊聊kafka的那些事儿。一、消费者组消费者组,即ConsumerGroup,是Kafka的一大亮点设计。一个组内可以有多个消费者或消费者实例(ConsumerInstance),它们共享一个公共的ID,这个ID被称为GroupID。组内的所有消费者协调在一起来消费订阅主题(topic)的所有分区(Part......
  • Zookeeper未授权访问漏洞
    Zookeeper未授权访问漏洞Zookeeper是分布式协同管理工具,常用来管理系统配置信息,提供分布式协同服务。Zookeeper的默认开放端口是2181。Zookeeper安装部署之后默认情况下不需要任何身份验证,造成攻击者可以远程利用Zookeeper,通过服务器收集敏感信息或者在Zookeeper集群内进......
  • Centos7,升级OpenSSH(亲测有效适用于小白)
    项目场景:OpenSSH升级,OpenSSH更新,OpenSSH漏洞修复漏洞信息:OpenSSH命令注入漏洞(CVE-2023-51385)以及日常运维升级openssh参考。注意!!!,如果本机未安装telnet建议打开多个SSH终端连接使用top避免设备断链,并安装telnet服务器,确保在SSH服务器升级异常时,可以通过telnet......
  • kafka监控工具之Kafka-Eagle部署与使用
    官网资料EFAKhttps://docs.kafka-eagle.org/前置部署Kafka集群部署与使用-CSDN博客Linux环境下部署MySQL8数据库-CSDN博客安装步骤1、上传解压cd/usr/local/soft/tar-zxvf kafka-eagle-web-1.3.7-bin.tar.gz2、修改环境变量vi/etc/profile系统环境变量添加内......
  • 【Apache Kafka深入】Kafka集群的配置与管理
    ApacheKafka深入Kafka集群的配置与管理引言ApacheKafka是一种分布式流处理平台,主要用于实时数据流的处理和传输。由于其高吞吐量、低延迟、容错性和持久性,Kafka被广泛应用于日志收集、消息系统、流处理、监控数据等领域。本文将详细介绍Kafka集群的配置与管理,帮助......
  • Zookeeper之HA
    HA步骤配置之前先拍摄快照(重要)快照名称设置为Zookeeper配置免密登录#在node1节点执行ssh-keygen-trsa#三次回车之后ssh-copy-idnode1ssh-copy-idnode2ssh-copy-idmaster关闭所有Hadoop#关闭Hadoopstop-all.sh在core-site.xml中添加如下配置:--注......
  • centos7上dpdk绑定vfio-pci失败
    记一次使用dpdk中的报错:运行dpdk/usertools/dpdk-devbind.py-bvfio-pci02:05.0来绑定设备到vfio-pci时,报出了如下错误:Error:bindfailedfor0000:02:05.0-Cannotbindtodrivervfio-pci:[Errno19]NosuchdeviceError:unbindfailedfor0000:02:05.0-Cannot......
  • 集群使用Kafka
    创建Kafka启动脚本ZooKeeper为Kafka提供了集群管理、分布式协调、配置管理和高可用性等关键服务,Kafka启动之前需要先zkServer.shstart。Kafka2.8.0版本开始引入了自身的内部元数据管理机制(KRaft模式),以逐步替代ZooKeeper。kafka/bin目录下,例如/usr/local/soft/kafka-1.0......
  • 大数据场景下的Zookeeper集群的搭建
    本篇文件将介绍如何搭建zookeeper集群,并集合大数据相关组件介绍zookeeper的功能一、Zookeeper是做什么的,我们搭建它有什么用处Zookeeper是一个分布式的服务管理框架,它负责存储和管理大家都关心的数据,基于观察者涉及模式,Zookeeper接受观察者的注册,一旦这些数据的状态发生了变......
  • helm部署Kafka集群
    生产环境推荐的kafka部署方式为operator方式部署,Strimzi是目前最主流的operator方案。集群数据量较小的话,可以采用NFS共享存储,数据量较大的话可使用localpv存储。部署operator[root@k8s-master3101-kafka]#helmrepoaddstrimzihttps://strimzi.io/charts/"strimzi"has......