# Kafka
# 一、安装部署
# 1.1 群集规划
hdp1 | hdp2 | hdp3 |
---|---|---|
zk | zk | zk |
kafka | kafka | kafka |
JAR包下载: 从Kafka (opens new window)官方下载Jar包
# 1.2 群集部署
- 解压安装包
[root@hdp1 opt]# tar -xzf kafka.tgz
1
- 创建logs文件夹
[root@hdp1 kafka]# mkdir logs
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
2
3
4
5
6
7
8
9
- 配置环境变量
[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
2
3
4
- 分发文件
[root@hdp1 kafka]# xsync /etc/profile.d/my_env.sh
[root@hdp1 opt]# xsync kafka
1
2
2
分别在hdp2,hdp3上修改 broker.id
启动脚本
#!/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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
- 启动停止kafka群集
[root@hdp1 script]# kf.sh start
[root@hdp1 script]# kf.sh stop
1
2
2
- 在zk中查看kafka状态
hdp1-➜ ~ /opt/zookeeper/bin/zkCli.sh
[zk: localhost:2181(CONNECTED) 4] ls /kafka/brokers/ids
[0, 1, 2]
1
2
3
2
3
# 二、命令行操作
# 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.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
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
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