搭建 Kafka 集群详细教程

由 shenke 发布

下面以 搭建 Zookeeper 集群详细教程 中搭建的 zookeeper 集群为例

1. 安装 Kafka

  1. 将在 /tmp 目录下的 kafka_2.11-2.4.1.tgz 解压
tar -zxvf kafka_2.11-2.4.1.tgz
  1. 移动到 /opt/module 目录下,并重命名为 kafka
mv kafka_2.11-2.4.1 /opt/module/kafka
  1. 配置环境变量
sudo vi /etc/profile

追加以下内容

# KAFKA_HOME
export KAFKA_HOME=/opt/module/kafka
export PATH=$PATH:$KAFKA_HOME/bin

使环境变量生效

source /etc/profile

还需分别在其他节点手动配置环境变量

2. 配置集群

2.1 配置 server.properties

在 Kafka 安装目录下,编辑 config/server.properties 文件

vi config/server.properties

修改以下内容

broker.id=0
log.dirs=/opt/module/kafka/logs
listeners=PLAINTEXT://hadoop1:9092
zookeeper.connect=hadoop1:2181,hadoop2:2181,hadoop3:2181

注意broker.id 须为全局唯一的 int 值,在本例中,hadoop1 为 0,hadoop2 为 1,hadoop3 为 2;listeners 也要与所在节点对应

2.2 修改生产者配置文件

编辑 config/producer.properties

vi config/producer.properties

修改以下内容

bootstrap.servers=hadoop1:9092,hadoop2:9092,hadoop3:9092

2.3 修改消费者配置文件

编辑 config/consumer.properties

vi config/consumer.properties

修改以下内容

bootstrap.servers=hadoop1:9092,hadoop2:9092,hadoop3:9092

2.4 同步文件

xsync /opt/moudle/kafka

脚本内容可参考 xsync.sh

在其他节点修改 config/server.properties 中的 broker.idlisteners

3. 启动集群

  1. 启动 Kafka 集群前需要先启动 Zookeeper
zookeeper start

在每个节点分别启动 Kafka

bin/kafka-server-start.sh -daemon config/server.properties
  1. 关闭集群

在每个节点分别关闭 Kafka

bin/kafka-server-stop.sh

4. 编写群起脚本

/home/shenke/bin 目录下,新建并编辑脚本

vi ~/bin/kafka

内容参考 kafka.sh

使用

# 开启
kafka start

# 停止
kafka stop

5. 集群测试

5.1 创建主题

创建一个副本数为 1、分区数为 3、名为 test 的主题

bin/kafka-topics.sh --zookeeper hadoop1:2181 --create --replication-factor 1 --partitions 3 --topic test

5.2 查看主题

  1. 列出所有主题
bin/kafka-topics.sh --zookeeper hadoop1:2181 --list
  1. 查看某个主题的详情
bin/kafka-topics.sh --zookeeper hadoop1:2181 --describe --topic test

5.3 删除主题

bin/kafka-topics.sh --zookeeper hadoop1:2181 --delete --topic test

5.4 生产消息

在 hadoop1 中生产消息

bin/kafka-console-producer.sh --broker-list hadoop1:9092 --topic test

5.5 消费消息

在 hadoop2 中消费消息

bin/kafka-console-consumer.sh --bootstrap-server hadoop2:9092 --topic test


暂无评论

发表评论