Kafka消息队列环境搭建

(一)zookeeper安装部署

由于Kafka需要依赖于Zookeeper,所以在这我们需要先把Zookeeper安装部署起来。

1. zookeeper单机安装

zookeeper需要依赖于jdk,只要保证jdk已经正常安装即可。

  1. 下载zookeeper的安装包
    进入Zookeeper的官网
    最终下载链接如下:
    https://mirrors.bfsu.edu.cn/apache/zookeeper/zookeeper-3.5.8/apache-zookeeper-3.5.8-bin.tar.gz

  2. 把安装包上传到bigdata01机器的/data/soft目录下,解压

  3. 修改配置文件
    首先将 zoo_sample.cfg 重命名为 zoo.cfg
    然后修改 zoo.cfg 中的 dataDir 参数的值, dataDir 指向的目录存储的是zookeeper的核心数据,所以这个目录不能使用tmp目录

dataDir=/data/soft/apache-zookeeper-3.5.8-bin/data
  1. 启动zookeeper服务
bin/zkServer.sh start
  1. 如果能看到QuorumPeerMain进程就说明zookeeper启动成功

注意:如果执行jps命令发现没有QuorumPeerMain进程,则需要到logs目录下去查看zookeeper-*.out这个日志文件。
也可以通过 zkServer.sh 脚本查看当前机器中zookeeper服务的状态
注意:使用zkServer.sh默认会连接本机2181端口的zookeeper服务,默认情况下zookeeper会监听2181端口,这个需要注意一下,因为后面我们在使用zookeeper的时候需要知道它监听的端口是哪个。

bin/zkServer.sh status
  1. 操作zookeeper
    首先使用zookeeper的客户端工具连接到zookeeper里面,使用bin目录下面的 zlCli.sh 脚本,默认会连接本机的zookeeper服务。
bin/zkCli.sh

这样就进入zookeeper的命令行了。
在这里面可以操作Zookeeper中的目录结构
zookeeper中的目录结构和Linux文件系统的目录结构类似
zookeeper里面的每一个目录我们称之为节点(ZNode)
正常情况下我们可以把ZNode认为和文件系统中的目录类似,但是有一点需要注意:ZNode节点本身是可以存储数据的。

  1. zookeeper的使用命令
  • 查看根节点下面有什么内容:ls /
  • 创建节点,在test节点上存储数据hello: create /test hello
  • 查看节点中的信息:get /test
  • 删除节点: deleteall /test
  1. 停止zookeeper服务
bin/zkServer.sh stop

2. zookeeper集群安装

  1. 集群节点规划,使用三个节点搭建一个zookeeper集群

bigdata01
bigdata02
bigdata03

  1. 首先在bigdata01节点上配置zookeeper
v zoo_sample.cfg zoo.cfg
dataDir=/data/soft/apache-zookeeper-3.5.8-bin/data
server.0=bigdata01:2888:3888
server.1=bigdata02:2888:3888
server.2=bigdata03:2888:3888

创建目录保存 myid 文件,并且向 myid 文件中写入内容
myid 中的值其实是和 zoo.cfg 中 server 后面指定的编号是一一对应的
编号 0 对应的是 bigdata01 这台机器,所以在这里指定 0。

  1. 把修改好配置的zookeeper拷贝到其它两个节点
scp -rq apache-zookeeper-3.5.8-bin bigdata02:/data/soft
scp -rq apache-zookeeper-3.5.8-bin bigdata03:/data/soft
  1. 修改bigdata02和bigdata03上zookeeper中myid文件的内容
    首先修改bigdata02节点上的myid文件

  2. 启动zookeeper集群
    分别在 bigdata01、bigdata02、bigdata03 上启动zookeeper进程
    在bigdata01上启动:bin/zkServer.sh start

  3. 验证
    分别在bigdata01、bigdata02、bigdata03上执行jps命令验证是否有 QuorumPeerMain 进程
    如果都有就说明zookeeper集群启动正常了
    执行 bin/zkServer.sh status 命令会发现有一个节点显示为 leader ,其他两个节点为 follower

  4. 停止zookeeper集群
    在bigdata01、bigdata02、bigdata03三台机器上分别执行bin/zkServer.sh stop命令

(二)kafka安装部署

注意:在安装kafka之前需要先确保zookeeper集群是启动状态。

1. kafka单机安装

  1. 下载链接如下:
    https://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.4.1/kafka_2.12-2.4.1.tgz
  • 注意:kafka在启动的时候不需要安装scala环境,只有在编译源码的时候才需要,因为运行的时候
    是在jvm虚拟机上运行的,只需要有jdk环境就可以了
  1. 修改配置文件:vi config/server.properties
broker.id:集群节点id编号,单机模式不用修改
listeners:默认监听9092端口
log.dirs:注意:这个目录不是存储日志的,是存储Kafka中核心数据的目录,这个目录默认是指
zookeeper.connect:kafka依赖的zookeeper
  1. 启动kafka
 bin/kafka-server-start.sh  -daemon config/server.properties 
  1. 验证:jps
    启动成功之后会产生一个kafka进程

  2. 停止kafka

bin/kafka-server-stop.sh 

2. kafka集群安装

  1. 集群节点规划,使用三个节点搭建一个kafka集群
    bigdata01
    bigdata02
    bigdata03
    注意:针对Kafka集群而言,没有主从之分,所有节点都是一样的。

  2. 首先在bigdata01节点上配置kafka
    修改配置文件
    注意:此时针对集群模式需要修改 broker.id 、 log.dirs 、以及 zookeeper.connect。
    broker.id 的值默认是从0开始的,集群中所有节点的 broker.id 从0开始递增即可。
    log.dirs 的值建议指定到一块存储空间比较大的磁盘上面,因为在实际工作中kafka中会存储很多数据,
    我这个虚拟机里面就一块磁盘,所以就指定到/data目录下面了
    zookeeper.connect 的值是zookeeper集群的地址,可以指定集群中的一个节点或者多个节点地址,多个节点地址之间使用逗号隔开即可

  3. 将修改好配置的kafka安装包拷贝到其它两个节点

scp -rq kafka_2.12-2.4.1 bigdata02:/data/soft/
scp -rq kafka_2.12-2.4.1 bigdata03:/data/soft/
  1. 修改bigdata02和bigdata03上kafka中broker.id的值
    首先修改bigdata02节点上的broker.id的值为1

  2. 启动集群
    分别在bigdata01、bigdata02、bigdata03上启动kafka进程
    在bigdata01上启动

 bin/kafka-server-start.sh  -daemon config/server.properties 
  1. 验证
    分别在bigdata01、bigdata02、bigdata03上执行jps命令验证是否有kafka进程
    如果都有就说明kafka集群启动正常了
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ZookeeperKafka集群搭建是一种常用的架构设计方法。Zookeeper是一种分布式的协调服务,在Kafka集群搭建中主要用于存储元数据信息和管理集群的状态。而Kafka则是一种高吞吐量的消息队列系统,可实现大规模的数据传输和处理。通过ZookeeperKafka集群搭建,可以提高系统的可靠性和可扩展性。 ### 回答2: ZookeeperKafka是Apache软件基金会下的两个重要的分布式应用程序,它们都是构建可靠、可扩展、具有高性能的分布式应用体系结构的两个重要组件。下面将介绍如何搭建一个Kafka集群,并使用Zookeeper来实现其高可用性。 1. 准备工作 为了搭建Kafka集群,您需要在您的每个服务器上安装Java环境。建议将Java安装在/opt/java/目录下,并将JAVA_HOME变量设置为/opt/java/jdk1.8.0_301。 2. 下载和安装Zookeeper 首先,您需要从Zookeeper的官方网站上下载最新版本的Zookeeper。选择合适版本的二进制文件下载即可。完成后,将Zookeeper解压到/opt/zookeeper/目录下。编辑/opt/zookeeper/conf/zoo.cfg,设置数据目录和Zookeeper服务器列表,例如:dataDir=/opt/zookeeper/data server.1=zk1:2888:3888 server.2=zk2:2888:3888 server.3=zk3:2888:3888 3. 配置Kafka集群 将Kafka的二进制文件下载到您的服务器,解压到/opt/kafka目录下。编辑/opt/kafka/config/server.properties文件,将以下参数设置为适当的值: broker.id=1 listeners=PLAINTEXT://kafka1:9092 advertised.listeners=PLAINTEXT://kafka1:9092 log.dirs=/opt/kafka/logs num.partitions=3 其中broker.id是唯一的标识符,listeners和advertised.listeners指定Kafka服务器的地址,log.dirs指定存储Kafka数据的目录,num.partitions指定在Kafka服务器上创建的分区数。 4. 启动ZookeeperKafkaZookeeper服务器上启动Zookeeper:/opt/zookeeper/bin/zkServer.sh start 在Kafka服务器上启动Kafka:/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties 如果Kafka服务器和Zookeeper服务器在同一台服务器上运行,则必须在不同的终端中启动它们。根据需要,将Kafka服务器配置文件中的其他参数设置为适当的值。 5. 测试Kafka集群 通过创建新的主题并发送一些消息进行测试。在另一个终端中,创建一个名为test的新主题:/opt/kafka/bin/kafka-topics.sh --create --zookeeper zk1:2181 --replication-factor 2 --partitions 3 --topic test 在同一终端中,发送一些消息:/opt/kafka/bin/kafka-console-producer.sh --broker-list kafka1:9092 --topic test 在另一个终端中,接收这些消息:/opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server kafka1:9092 --topic test --from-beginning 以上是一个简单的Kafka集群搭建过程,由Zookeeper来管理Kafka集群的状态。当Kafka集群中的任何一个服务器发生故障时,Zookeeper将自动将客户端重定向到另一个可用服务器。通过ZookeeperKafka的结合,您可以构建高可用、高性能的分布式应用程序。 ### 回答3: Kafka是一种高效、可扩展的分布式消息系统,而Zookeeper则是Kafka集群的重要组成部分。通过ZookeeperKafka集群可以实现高可用性和自动化管理。 以下是Zookeeper Kafka集群搭建的步骤: 第一步:安装Zookeeper Zookeeper的安装可以通过下载二进制包进行安装,也可以通过源码进行编译安装。这里我们以二进制包的方式进行安装。 1. 下载Zookeeper二进制包并解压缩。 2. 进入解压后的Zookeeper目录,复制conf文件夹中的zoo_sample.cfg,并修改名称为zoo.cfg。 3. 修改zoo.cfg文件中的数据和日志路径,并设置为本地有效的路径。例如: tickTime=2000 dataDir=/usr/local/zookeeper/data dataLogDir=/usr/local/zookeeper/logs 4. 启动Zookeeper: ./bin/zkServer.sh start 第二步:安装Kafka Kafka的安装可以通过下载二进制包进行安装,也可以通过源码进行编译安装。这里我们以二进制包的方式进行安装。 1. 下载Kafka二进制包并解压缩。 2. 进入解压后的Kafka目录,修改config/server.properties文件,设置broker.id、listeners、log.dirs以及zookeeper.connect等属性。 broker.id=1 listeners=PLAINTEXT://hostname:9092 log.dirs=/usr/local/kafka/logs zookeeper.connect=hostname:2181 3. 启动Kafka: ./bin/kafka-server-start.sh config/server.properties 第三步:创建Kafka主题 在Kafka上,消息以主题的形式进行组织。要创建一个主题,可以使用以下命令: ./bin/kafka-topics.sh --create --zookeeper hostname:2181 --replication-factor 1 --partitions 1 --topic test 其中,replication-factor表示复制因子,partitions表示分区数,topic表示主题名称。 第四步:启动Kafka生产者和消费者 通过Kafka生产者,可以往指定主题发送消息,而通过Kafka消费者,可以从指定主题接收消息。 启动Kafka生产者: ./bin/kafka-console-producer.sh --broker-list hostname:9092 --topic test 启动Kafka消费者: ./bin/kafka-console-consumer.sh --bootstrap-server hostname:9092 --topic test --from-beginning 以上就是Zookeeper Kafka集群搭建的步骤。通过以上步骤,可以快速搭建一个高效、可扩展的Kafka集群,满足您的消息传输需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值