Zookeeper的安装部署(kafka)

目录

 zookeeper与kafka的关系

一.  zookeeper的安装与部署

1. 上传zookeeper

2. 解压到对应的包下

​编辑3. 配置环境变量

4. 编辑 zoo.cfg文件 

5. 创建 zkdata文件夹(在zookeeper-3.4.6下创建)

6. 在zkdata下创建myid文件

7. 启动zookeeper

8.群启动脚本

二. kafka的安装与配置

1.上传kafka

2. 解压到对应的包下 

3. 配置环境变量 

4. 编辑server.properties文件

5. 创建logs

 6. 启动kafka

7. 创建主题

8. 压力测试

 *生产者压力测试

*消费者压力测试


 zookeeper与kafka的关系

ZooKeeper(动物园管理员)和Kafka之间有一种密切的关系,它们通常一起使用以确保分布式系统的可靠性和一致性。以下是它们之间的主要关系:

  1. 协调服务: ZooKeeper 最初设计为分布式系统的协调服务,用于管理和维护配置信息、命名服务、分布式锁等。在Kafka中,ZooKeeper主要用于协调Broker之间的活动、存储Kafka的元数据以及处理领导者选举等任务。

  2. 元数据存储: Kafka使用ZooKeeper来存储关于Broker、Topic和Partition的元数据信息。这包括哪些Broker是活动的,哪些是备份的,以及每个Partition的领导者是谁等。

  3. 领导者选举: Kafka的每个Partition都有一个领导者(leader)负责处理读写请求。ZooKeeper帮助Kafka进行领导者选举,确保在Broker失败或新Broker加入时能够选择新的领导者。

  4. 分布式锁: 在一些情况下,Kafka可能需要执行一些操作,例如重新分配Partition的副本。这时,ZooKeeper提供了分布式锁的功能,确保在进行这些敏感操作时只有一个Broker能够执行。

总的来说,ZooKeeper为Kafka提供了一个稳定的分布式协作基础设施,帮助确保Kafka集群的高可用性和一致性。

一.  zookeeper的安装与部署

1. 上传zookeeper

  进入package查看 

2. 解压到对应的包下

tar -zxvf zookeeper-3.4.6.tar.gz -C /opt/jy

3. 配置环境变量

vim /etc/profile  

添加如下代码: 

export ZOOKEEPER_HOME =/opt/jy/zookeeper-3.4.6
export PATH=$PATH:$ZOOKEEPER_HOME/bin 

刷新环境变量

source /etc/profile 

切换到zookeeper下的conf目录,将zoo-sample.cfg 重命名为zoo.cfg

mv zoo-sample.cfg zoo.cfg

4. 编辑 zoo.cfg文件 
dataDir=/opt/jy/zookeeper-3.4.6/zkdata


server.1=Jdb01:2888:3888
server.2=Jdb02:2888:3888
server.3=Jdb03:2888:3888 

5. 创建 zkdata文件夹(在zookeeper-3.4.6下创建)

6. 在zkdata下创建myid文件

vim myid 

在文件中输入数字1

注意: 

myid与配置文件中末尾增加部分相对应

配置文件zoo.cfg中的server.1=Jdb01:2888:3888,所以01中的myid为1

分发给另外两台并修改myid文件 

7. 启动zookeeper

zKServer.sh start 

8.群启动脚本

vim zk.sh 

chmod 777 zk.sh

二. kafka的安装与配置

1.上传kafka

进入package查看

2. 解压到对应的包下 

tar -zxvf kafka_2.11-2.4.1.tgz -C ../jz

3. 配置环境变量 

vim /etc/profile

export KAFKA_HOME=/opt/jy/kafka
export PATH=$PATH:$KAFKA_HOME/bin

刷新环境变量

source /etc/profile 

4. 编辑server.properties文件

broker.id=0

delete.topic.enable=true

log.dirs=/opt/jy/kafka/logs

zookeeper.connect=hadoop01:2181,hadoop02:2181,hadoop03:2181/kafka 

 

注意: 

broker.id 为节点id,不同的节点用不同的数字表示,此hadoop01为例,id为0

log.dirs 为kafka存储消息(log日志数据)的目录

zookeeper.connect 为zookeeper服务地址ip

5. 创建logs

mkdir logs 

 6. 启动kafka

启动kafka之前先启动zookeeper

 ./kafka-server-start.sh ../config/server.properties

7. 创建主题

 ./kafka-topics.sh --bootstrap-server hadoop01:9092 --create --topic topic-test1 --partitions 4 --replication-factor 2

./kafka-topics.sh --bootstrap-server hadoop01:9092 --list

  • --create:指定创建主题的操作。
  • --topic <topic-name>:指定要创建的主题名称。
  • --bootstrap-server <bootstrap-server>:指定 Kafka 集群的引导服务器(即 broker)列表及其地址和端口号。例如 hadoop01:9092
  • --partitions <num-partitions>:指定要为主题创建的分区数。
  • --replication-factor <replication-factor>:指定主题的副本因子,即每个分区的副本数
8. 压力测试

kafka-producer-perf-test.sh --topic topic-test --record-size 1024 --num-records 1000000 --throughput 10000 --producer-props bootstrap.servers=hadoop01:9092,hadoop02:9092,hadoop03:9092 batch.size=16384 linger.ms=0

  • --topic topic-test: 指定要进行压力测试的主题名称为 topic-test

  • --record-size 1024: 指定每条消息的大小为 1024 字节。

  • --num-records 1000000: 指定要发送的消息总数为 1000000 条。

  • --throughput 10000: 指定发送消息的吞吐量为 10000 条/秒。这里表示希望以每秒 10000 条的速度发送消息。如果设置为 -1,则表示没有吞吐量限制。

  • --producer-props bootstrap.servers=hadoop01:9092,hadoop02:9092,hadoop03:9092 batch.size=16384 linger.ms=0: 这部分指定了用于配置生产者的相关属性。

    • bootstrap.servers=hadoop01:9092,hadoop02:9092,hadoop03:9092:指定 Kafka 集群的 broker 服务器列表为 hadoop01:9092,hadoop02:9092,hadoop03:9092
    • batch.size=16384: 指定生产者的批量大小为 16384 字节。这表示生产者将累积到一定大小的消息批量发送到 Kafka,以提高性能。
    • linger.ms=0: 指定消息在缓冲区中等待发送的时间为 0 毫秒。这表示生产者将立即发送消息而不进行等待。

 *生产者压力测试

kafka-producer-perf-test.sh --topic <topic-name> --num-records <num-records> --record-size <record-size> --throughput <throughput> --producer-props bootstrap.servers=<bootstrap-servers>

例如:

kafka-producer-perf-test.sh --topic my-topic --num-records 100000 --record-size 100 --producer-props bootstrap.servers=hadoop01:9092 

  • --topic <topic-name>:指定要进行压力测试的主题名称。
  • --num-records <num-records>:指定要发送的消息总数。
  • --record-size <record-size>:指定每条消息的大小(字节)。
  • --throughput <throughput>:指定发送消息的吞吐量,即每秒发送的消息数量。可选参数,默认为 -1(无限制)。
  • --producer-props bootstrap.servers=<bootstrap-servers>:指定Kafka集群的引导服务器列表及其地址和端口号。

*消费者压力测试

kafka-consumer-perf-test.sh --broker-list <broker-list> --topic <topic-name> --messages <num-messages> --threads <num-threads>

例如: 

kafka-consumer-perf-test.sh --broker-list hadoop01:9092 --topic my-topic --messages 100000 --threads 1

  • --broker-list <broker-list>:指定Kafka集群的broker列表。
  • --topic <topic-name>:指定要进行压力测试的主题名称。
  • --messages <num-messages>:指定要消费的消息总数。
  • --threads <num-threads>:指定用于消费的线程数。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值