Kafka 集群搭建

环境说明

集群规划

  • 之后每台服务器的配置编写几乎一摸一样, 除了myid文件内容不同
hadoop300hadoop301hadoop302
kafkaVVV

[Tip]

  • 如无特别说明, 所有配置每个服务器要保持一致

安装

1、安装包准备

  • 下载后, 解压到每台服务器的一个位置即可.
  • 如下hadoop300, 其他集群服务器一样放置
[hadoop@hadoop300 app]$ pwd
/home/hadoop/app
[hadoop@hadoop300 app]$ ll
总用量 0
lrwxrwxrwx. 1 hadoop hadoop 44 1月  13 23:24 jdk -> /home/hadoop/app/manager/jdk_mg/jdk1.8.0_212
lrwxrwxrwx. 1 hadoop hadoop 50 1月  14 19:16 kafka -> /home/hadoop/app/manager/kafka_mg/kafka_2.11-2.4.1
drwxrwxr-x. 6 hadoop hadoop 72 1月  14 19:16 manager
lrwxrwxrwx. 1 hadoop hadoop 64 1月  14 17:24 zookeeper -> /home/hadoop/app/manager/zookeeper_mg/apache-zookeeper-3.5.7-bin

2、配置环境变量

vim ~/.bash_profile 文件添加如下, 每台服务器都要配置

# ================= Kafka =====================
export KAFKA_HOME=/home/hadoop/app/kafka
export PATH=$PATH:$KAFKA_HOME/bin

3、 修改配置文件

  • 修改${KAFKA_HOME}/config/server.properties文件
  • broker.id=xx 在每个服务器上要配置不同的id,不能重复
# 唯一标识别broker的id
# 我这里是hadoop300,标识为0,  其他服务器上hadoop301为1 hadoop302为2 (省略)
broker.id=0
# 以逗号分隔的目录列表,用于存储日志文件(实际上是broker数据文件)就是存放到这个路径
log.dirs=/home/hadoop/app/kafka/data
#  是否允许真正删除topic
delete.topic.enable=True
# zk集群访问地址, 在 /kafka路径下存储kafka相关数据
zookeeper.connect=hadoop300:2181,hadoop301:2181,hadoop302:2181/kafka

4、kafka集群统一启动/停止脚本

[hadoop@hadoop300 shell]$ pwd
/home/hadoop/shell
[hadoop@hadoop300 shell]$ vim kafka.sh
[hadoop@hadoop300 shell]$ chmod ug+x kafka.sh
[hadoop@hadoop300 shell]$ ll
-rwxrwxr--. 1 hadoop hadoop 464 1月  14 17:50 kafka.sh

kafka.sh内容如下
[Tip]

  • 因为配置了kafka的环境变量到~/.bash_profile 下所以可以直接使用kafka-server-start.sh脚本. 当然也可以写该脚本的绝对路径即可.
  • ssh远程执行命令默认不会加载这个bash_profile环境变量,所以手动source一下,详细见ssh连接远程主机执行脚本的环境变量问题
#!/bin/bash

list=(hadoop300 hadoop301 hadoop302)

case $1 in
"start"){
        for i in ${list[@]}
        do
          echo ---------- kafka[ $i ]启动 ------------
          ssh $i "source ~/.bash_profile;kafka-server-start.sh -daemon ${KAFKA_HOME}/config/server.properties"
        done
};;
"stop"){
        for i in ${list[@]}
        do
          echo ---------- kafka[ $i ]停止 ------------    
                ssh $i "source ~/.bash_profile;kafka-server-stop.sh stop"
        done
};;
""){
    echo "!"
};;
esac

然后将该脚本挂载到全局调用即可, 配置环境变量或者软连接挂载到 系统bin目录下

6、启动测试

[hadoop@hadoop300 logs]$ kafka.sh start
---------- kafka[ hadoop300 ]启动 ------------
---------- kafka[ hadoop301 ]启动 ------------
---------- kafka[ hadoop302 ]启动 ------------

[hadoop@hadoop300 logs]$ xcall jps
--------- hadoop300 ----------
1749 QuorumPeerMain
4041 Kafka
4140 Jps
--------- hadoop301 ----------
3189 Kafka
3749 Jps
1623 QuorumPeerMain
--------- hadoop302 ----------
1627 QuorumPeerMain
3164 Kafka
3724 Jps

此时打开zookeeper客户端可以看到kafka相关数据的生成在/kafka 路径下

[hadoop@hadoop300 logs]$ zkCli.sh
[zk: localhost:2181(CONNECTED) 0] ls /
[kafka, zookeeper]
[zk: localhost:2181(CONNECTED) 1] ls /kafka
[admin, brokers, cluster, config, consumers, controller, controller_epoch, isr_change_notification, latest_producer_id_block, log_dir_event_notification]
[zk: localhost:2181(CONNECTED) 2]

10、打赏

如果觉得文章有用,你可鼓励下作者(支付宝)

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值