Kafka集群的安装和部署

文章目录

        • 服务器准备
        • 集群规划
        • 集群部署
        • 分发文件
        • 启动集群
        • 关闭集群
        • 简单的命令行操作
        • 一些问题

服务器准备

VMware Workstation Pro 15.5

Centos6.5 64bit

版本选择:Kafka_2.11-0.11.0.0

集群规划

node1 node2 node3
kafka kafka kafka
zookeeper zookeeper zookeeper

集群部署

# 解压安装包
tar -zxvf kafka_2.11-0.11.0.0.tgz -C /opt/module
# 在kafka根目录下新建logs文件夹
mkdir logs
# 配置环境变量
vim /etc/profile
# 添加以下内容
export KAFKA_HOME = /opt/module/kafka
export PATH=$PATH:$KAFKA_HOME/bin
# 生效环境文件
source /etc/profile
# 修改配置文件
vim config/server.properties
# 修改以下内容(重点修改*)

# ***broker唯一编号,集群内每台机器都不同***
broker.id=0 
# ***开启删除topic的功能***
delete.topic.enable=true 
# 处理网络请求的线程数量 
num.network.threads=3 
# 用来处理磁盘 IO 的现成数量 
num.io.threads=8 
# 发送套接字的缓冲区大小 
socket.send.buffer.bytes=102400 
# 接收套接字的缓冲区大小 
socket.receive.buffer.bytes=102400 
# 请求套接字的缓冲区大小 
socket.request.max.bytes=104857600 
# ***kafka数据存放的路径***(注意:该文件夹不是日志文件夹,日志文件夹logs会在kafka根目录下自动创建)
log.dirs=/opt/module/kafka/data
log.dirs=/opt/module/kafka/logs 
# topic 在当前 broker 上的分区个数 
num.partitions=1 
# 用来恢复和清理 data 下数据的线程数量 
num.recovery.threads.per.data.dir=1 
# segment 文件保留的最长时间,超时将被删除 
log.retention.hours=168 
# ***配置连接 Zookeeper 集群地址***
zookeeper.connect=node1:2181,node2:2181,node3:2181

分发文件

# 向集群上的每台机器发送kafka
scp -r /opt/module/kafka node2:/opt/module
scp -r /opt/module/kafka node3:/opt/module
# 发送后需要在其他机器上配置环境变量,和server.properties文件,修改broker.id为1和2

启动集群

# 需要先启动zookeeper集群
zkSever.sh start
# 分别在每台机器上指定配置文件,启动kafka(-daemon将该进程转移至后台)
bin/kafka-server.sh -daemon config/server.properties

关闭集群

# 关闭时不需要指定配置文件,也需要在每台机器上都执行
bin/kafka-server.sh stop

简单的命令行操作

# 列出所有topic
bin/kafka-topics.sh --zookeeper node1:2181 --list
# 添加topic,并配置分区数为3,副本数为2(如果没有配置topic删除功能,则只是标记删除)
bin/kafka-topics.sh --zookeeper node1:2181 --create --topic first --partitions 3 --replication-factor 2
# 查看topic的详细信息
bin/kafka-topics.sh --zookeeper node1:2181 --describe --topic first
# 删除topic
bin/kafka-topics.sh --zookeeper node1:2181 --delete --topic first
# 生产者producer测试
bin/kafka-console-producer.sh --topic first --broker-list node1:9092
# 消费者consumer测试(offset保存在zookeeper)
bin/kafka-console-consumer.sh --topic first --zookeeper node1:2181
# 消费者consumer测试(offset保存在kafka本地)
bin/kafka-console-consumer.sh --topic first --bootstrap-server node1:9092
# 加上参数--from-beginning表示从头读起
bin/kafka-console-consumer.sh --topic first --bootstrap-server node1:9092 --from-beginning

一些问题

  1. 使用 kafka-server.sh stop 无法关闭kafka服务

    解决方案:修改 kafka-server.sh 文件

    # 将以下内容
    PIDS=$(ps ax | grep -i 'kafka.Kafka' | grep java | grep -v grep | awk '{print $1}')
    # 修改为
    PIDS=$(jps -lm | grep -i 'kafka.Kafka'| awk '{print $1}')
    

你可能感兴趣的:(Hadoop)