[toc]

一、集群规划

本篇只搭建kafka集群
zookeeper搭建请移步:https://liudongdong.top/archives/zookeeper集群安装和配置解读

环境环境说明备注
server1192.168.158.200master
server2192.168.158.201node1
server3192.168.158.202node2
jdkjdk1.8
zookeeperzookeeper-3.4.10.tar.gz
kafkakafka_2.11-0.11.0.0.tgz

二、kafka集群搭建

1. 下载

  1. 官方地址:
    http://kafka.apache.org/downloads.html

  2. 已经整理好的包
    包含jdk、zk、kafka等
    关注公众号:雨中散步撒哈拉,回复关键词:023,即可获取下载链接

2. 上传服务器,并解压

下载好的tar包进行上传到服务器上,并进行解压

 tar -zxf kafka_2.11-0.11.0.0.tgz

3. 创建日志文件夹

kafka目录下

 mkdir logs

4. 修改配置文件

config目录下的server.properties配置文件

# 进入配置文件夹
cd config/
# 修改server配置文件
vi 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 运行日志存放的路径
log.dirs=/root/programs/learn/kafka_2.11-0.11.0.0/logs
#topic 在当前 broker 上的分区个数
num.partitions=1
#用来恢复和清理 data 下数据的线程数量
num.recovery.threads.per.data.dir=1
#segment 文件保留的最长时间,超时将被删除
log.retention.hours=168
#配置连接Zookeeper集群地址 master为主节点ip,没有设置映射可以写对应ip
zookeeper.connect=master:2181,node1:2181,node2:2181

ps:在其他机器中broker需修改为broker.id=1、broker.id=2,其他配置不变
broker.id不得重复

5. 配置环境变量

修改环境配置文件
vim ~/.bashrc

# 尾部追加内容如下
# 尾部追加内容如下
# 尾部追加内容如下
# jdk
export JAVA_HOME=/root/programs/learn/jdk1.8.0_211
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

# zk
export ZOOKEEPER_HOME=/root/programs/learn/zookeeper-3.4.10

# kafka
export KAFKA_HOME=/root/programs/learn/kafka_2.11-0.11.0.0

# PATH
export PATH=${JAVA_HOME}/bin:${ZOOKEEPER_HOME}/bin:${KAFKA_HOME}:$PATH

配置生效source ~/.bashrc

6. 分发安装的包和配置文件

  1. 分发kafka安装包到其他机器中
# 分发learn目录到其他机器下
scp -r learn/  root@192.168.158.201:/root/programs/
  1. 分发环境配置文件
# 分发环境配置文件
scp -r ~/.bashrc  root@192.168.158.201:/root/.bashrc
  1. 分发的配置文件生效
# 执行如下命令,进行配置生效
source ~/.bashrc

三、启动、关闭kafka集群

1. 单机启动、关闭kafka集群

  1. 启动kafka
    kafka目录下
bin/kafka-server-start.sh -daemon config/server.properties

jps查看服务
image.png

  1. 关闭kafka
    kafka目录下
bin/kafka-server-stop.sh stop

2. 脚本启动、关闭集群

  1. 编写脚本
#!/bin/bash

case $1 in
    'start')
        for i in master node1 node2
        do
            echo "**********start-$i***************"
            ssh $i '/root/programs/learn/kafka_2.11-0.11.0.0/bin/kafka-server-start.sh -daemon /root/programs/learn/kafka_2.11-0.11.0.0/config/server.properties'
        done
    ;;
    'stop')
        for i in master node1 node2
        do
            echo "**********stop-$i***************"
            ssh $i '/root/programs/learn/kafka_2.11-0.11.0.0/bin/kafka-server-stop.sh stop'
        done

    ;;
esac
  1. 脚本赋予执行权限
chmod 777 kafka_start_stop.sh
  1. 执行脚本
# 开启
]# ./kafka_start_stop.sh start

# 关闭
]# ./kafka_start_stop.sh stop

image.png

Q.E.D.


只有创造,才是真正的享受,只有拚搏,才是充实的生活。