Kafka集群部署

Kafka分布式集群部署

1.集群规划

在hadoop01、hadoop02和hadoop03三个节点上部署Kafka。我安装的版本是kafka_2.11-2.1.0.tgz,下载地址:http://archive.apache.org/dist/kafka

2.解压安装

(1)解压Kafka安装包到/opt/modules/目录下

# 解压
[jiang@hadoop01 software]$ tar -zxvf kafka_2.11-2.1.0.tgz -C /opt/modules/
# 重命名
[jiang@hadoop01 modules]$ mv kafka_2.11-2.1.0 kafka-2.1.0
3.配置环境变量

编辑 profile 文件:

[jiang@hadoop01 ~]$ sudo vim /etc/profile
# 添加如下内容
export KAFKA_HOME=/opt/modules/kafka-2.1.0
export PATH=$PATH:$KAFKA_HOME/bin

使得配置的环境变量生效: source /etc/profile

4.修改配置

在 Kafka 安装目录下创建kafka-logs文件夹(用来存储分区信息的 ,不要把它与存放错误日志的目录混淆了,日志目录是配置在 `log4j.properties文件 里的 )

[jiang@hadoop01 kafka-2.1.0]$ mkdir kafka-logs

进入安装目录的 config/ 目录下,修改配置文件server.properties ,找到对应数据进行修改:

# broker的全局唯一标识号,不能重复. 给集群中的每个broker配置一个不同的id
broker.id=1
# 分区数据的存储位置
log.dirs=/opt/software/kafka-2.1.0/kafka-logs
# 连接Zookeeper集群地址
zookeeper.connect=hadoop01:2181,hadoop02:2181,hadoop03:2181
5、分发安装包

分发之后需要修改 **broker.id( id 值一定不能重复. )**的值,同时建议其他节点的环境变量也配置下。

[jiang@hadoop01 modules]$ xsync kafka-2.1.0

xsync是一个分发脚本在Zookeeper分布式部署中有

6、启动集群

先启动zookeeper集群

[jiang@hadoop01 bin]$ zookeeper.sh start

再用kafka.sh 脚本启动kafka集群

[jiang@hadoop01 bin]$ kafka.sh start
kafka.sh脚本
#! /bin/bash

case $1 in
"start"){
        for i in hadoop01 hadoop02 hadoop03
        do
                echo " -------- $i 正在启动 Kafka ......"
                # 用于KafkaManager监控
                ssh $i "source /etc/profile; nohup  /opt/modules/kafka-2.1.0/bin/kafka-server-start.sh -daemon /opt/modules/kafka-2.1.0/config/server.properties "
        done
        echo " -------- Kafka 集群已启动完成!-------"
};;
"stop"){
        for i in hadoop01 hadoop02 hadoop03
        do
                echo " -------- $1 正在停止Kafka -------"
                ssh $i "source /etc/profile; /opt/modules/kafka-2.1.0/bin/kafka-server-stop.sh"
        done
        echo " -------- Kafka 集群已全部停止!-------"
};;
esac

赋予脚本执行权限:sudo chmod 777 kafka.sh

查看进程

[jiang@hadoop01 bin]$ xcall.sh jps
-------- hadoop01 ----------
5250 Jps
5178 Kafka
2318 QuorumPeerMain
-------- hadoop02 ----------
1990 QuorumPeerMain
3640 Kafka
3704 Jps
-------- hadoop03 ----------
3639 Kafka
3703 Jps
1998 QuorumPeerMain

已正常启动

7、验证

创建测试主题:

[jiang@hadoop01 kafka-2.1.0]$ bin/kafka-topics.sh --create --zookeeper hadoop01:2181 --replication-factor 3 --partitions 1 --topic jiang

#kafka-topics.sh 任何和 topic 相关的操作都使用这个命令
#--create 表示创建一个 topic
#--zookeeper 指明任意一个 zookeeper 服务器地址
#--replication-factor 表示每个 topic 的副本数. 注意: 副本数必须小于等于 kafka 集群的数量.
#--partitions 这个 topic 的分区的数量
#--topic 这个 topic 的名字.

创建完成后可以使用以下命令查看创建的主题信息:

[jiang@hadoop01 kafka-2.1.0]$ bin/kafka-topics.sh --create --zookeeper hadoop01:2181 --replication-factor 3 --partitions 1 --topic jiang
Created topic "jiang".
[jiang@hadoop01 kafka-2.1.0]$ bin/kafka-topics.sh --describe --zookeeper hadoop01:2181 --topic jiang
Topic:jiang	PartitionCount:1	ReplicationFactor:3	Configs:
	Topic: jiang	Partition: 0	Leader: 2	Replicas: 2,1,3	Isr: 2,1,3
[jiang@hadoop01 kafka-2.1.0]$ 
可以看到分区 0 的有 0,1,2 三个副本,且三个副本都是可用副本,都在 ISR(in-sync Replica 同步副本) 列表中,其中 2 为首领副本,此时代表集群已经搭建成功。
上一篇:Linux----->免密登录认证


下一篇:Hadoop01【介绍】