# Kafka

# 一、安装部署

# 1.1 群集规划

hdp1 hdp2 hdp3
zk zk zk
kafka kafka kafka

JAR包下载: 从Kafka (opens new window)官方下载Jar包

# 1.2 群集部署

  1. 解压安装包
[root@hdp1 opt]# tar -xzf kafka.tgz
1
  1. 创建logs文件夹
[root@hdp1 kafka]# mkdir logs
1
  1. 修改配置文件
hdp3-➜  /opt vim /opt/kafka/config/server.properties
# 没台broker的id需要唯一,不能重复
broker.id=0
# 设置可以删除topic
delete.topic.enable=true
# 设置 kafka topic 数据存放目录
log.dirs=/opt/kafka/data
# 设置zookeeper的节点
zookeeper.connect=hdp1:2181,hdp2:2181,hdp3:2181/kafka
1
2
3
4
5
6
7
8
9
  1. 配置环境变量
[root@hdp1 kafka]# vim /etc/profile.d/my_env.sh
#KAFKA_HOME
export KAFKA_HOME=/opt/kafka
export PATH=$PATH:$KAFKA_HOME/bin
1
2
3
4
  1. 分发文件
[root@hdp1 kafka]# xsync /etc/profile.d/my_env.sh
[root@hdp1 opt]# xsync kafka
1
2
  1. 分别在hdp2,hdp3上修改 broker.id

  2. 启动脚本

#!/bin/bash

case $1 in
"start"){
    for i in hdp1 hdp2 hdp3
    do
        echo " --------启动 $i Kafka-------"
        ssh $i "/opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties"
    done
};;
"stop"){
    for i in hdp1 hdp2 hdp3
    do
        echo " --------停止 $i Kafka-------"
        ssh $i "/opt/kafka/bin/kafka-server-stop.sh"
    done
};;
esac
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
  1. 启动停止kafka群集
[root@hdp1 script]# kf.sh start
[root@hdp1 script]# kf.sh stop
1
2
  1. 在zk中查看kafka状态
hdp1-➜  ~ /opt/zookeeper/bin/zkCli.sh
[zk: localhost:2181(CONNECTED) 4] ls /kafka/brokers/ids
[0, 1, 2]
1
2
3

# 二、命令行操作

官方快速指南 (opens new window)

# 2.1 创建topic

$ bin/kafka-topics.sh --create --topic quickstart-events --bootstrap-server localhost:9092
kafka-topics.sh  --bootstrap-server localhost:9092 --create --topic first --partitions 1 --replication-factor 3
1
2

# 2.2 查看topic列表

kafka-topics.sh --list --bootstrap-server localhost:9092
1

# 2.3 创造消息

$ bin/kafka-console-producer.sh --topic quickstart-events --bootstrap-server localhost:9092
This is my first event
This is my second event
1
2
3

# 2.4 消费消息

$ bin/kafka-console-consumer.sh --topic quickstart-events --from-beginning --bootstrap-server localhost:9092
This is my first event
This is my second event
1
2
3

# 2.5 删除数据

停掉服务,然后清除数据。

$ rm -rf /tmp/kafka-logs /tmp/zookeeper
1

# 2.6 删除某个topic的数据

bin/kafka-topics.sh --delete --topic bin_log_coupon --zookeeper localhost:2181
1
更新时间: 1/4/2022, 2:59:43 PM