Kafka 安装和使用
文章目录
Kafka简介
1)发布 & 订阅: 类似于⼀个消息系统,读写流式的数据
2)处理: 编写可扩展的流处理应⽤程序,⽤于实时事件响应的场景
3)存储: 安全的将流式的数据存储在⼀个分布式,有副本备份,容错的集群
用于构建实时的数据管道和流式的app.它可以水平扩展,高可用,速度快
Kafka安装 (三个节点)
1,先要安装好zookeeper,因为 kafka 的元数据是保存在zookeeper当中的,所以必须先安装好zookeeper zookeeper安装
2 下载kafka的安装包,然后解压至安装目录,然后修改配置文件
[hadoop@hadoop001 ~]$ cd app/kafka/config
[hadoop@hadoop001 config]$ vi server.properties
broker.id=0
host.name=hadoop001
port=9092
log.dirs=/home/hadoop/log/kafka-logs
zookeeper.connect= master001:2181,slave001:2181,slave002:2181/kafka
[hadoop@hadoop002 ~]$ cd app/kafka/config
[hadoop@hadoop002 config]$ vi server.properties
broker.id=1
host.name=hadoop002
port=9092
delete.topic.enable=true
log.dirs=/home/hadoop/log/kafka-logs
zookeeper.connect= master001:2181,slave001:2181,slave002:2181/kafka
[hadoop@hadoop003 ~]$ cd app/kafka/config
[hadoop@hadoop003 config]$ vi server.properties
broker.id=2
host.name=hadoop003
port=9092
log.dirs=/home/hadoop/log/kafka-logs
zookeeper.connect= master001:2181,slave001:2181,slave002:2181/kafka
Note:
1,zookeeper.connect 后面加上一个 /kafka 目的是将kafka中的元数据注册在 /kafka这个目录下,便于管理,如果不加上这个目录,所有的kafka元数据将会露在zookeeper根目录下。
2,zookeeper.connect是zookeeper的链接信息,broker.id是当前kafka实例的id,log.dirs是kafka存储消息内容的路径
启动 (三个节点同样的命令):
# 此命令告诉kaka启动时使用config/server.properties配置项
[hadoop@hadoop001 ~]$ nohup bin/kafka-server-start.sh config/server.properties &
或者:
[hadoop@hadoop001 ~]$ bin/kafka-server-start.sh -daemon config/server.properties
jps 可以查看到kafka进程了
进入zookeeper 客户端也可以查看kafka元数据信息,输入zkCli.sh
[zk: localhost:2181(CONNECTED) 0] ls /
[zookeeper, kafka]
[zk: localhost:2181(CONNECTED) 1] ls /kafka
[cluster, controller_epoch, brokers, admin, isr_change_notification, consumers, log_dir_event_notification, latest_producer_id_block, config]
可以看出zookeeper根目录下只有kafka,所有kafka的源数据都在 /kafka目录下了
常用脚本命令
- 创建topic
bin/kafka-topics.sh \
--create \
--zookeeper master001:2181,slave001:2181,slave002:2181/kafka \
--replication-factor 3 \
--partitions 3 \
--topic kzw
这个时候根据server.properties文件中 log.dirs 的值去我们 linux 目录是可以看到其实就是创建了几个文件夹的
drwxr-xr-x 2 root root 141 Oct 19 21:24 ruozedata-0
drwxr-xr-x 2 root root 141 Oct 19 21:20 ruozedata-1
drwxr-xr-x 2 root root 141 Oct 19 21:20 ruozedata-2
2 通过list命令查看创建的topic
bin/kafka-topics.sh \
--list \
--zookeeper master001:2181,slave001:2181,slave002:2181/kafka
3 查看创建的Topic 详细信息:
[[email protected] kafka]# bin/kafka-topics.sh \
> --describe \
> --zookeeper master001:2181,slave001:2181,slave002:2181/kafka \
> --topic ruozedata
Topic:ruozedata PartitionCount:3 ReplicationFactor:3 Configs:
Topic: ruozedata Partition: 0 Leader: 0 Replicas: 1,2,0 Isr: 0,1,2
Topic: ruozedata Partition: 1 Leader: 1 Replicas: 2,0,1 Isr: 1,0,2
Topic: ruozedata Partition: 2 Leader: 1 Replicas: 0,1,2 Isr: 1,0,2
Partition: 分区
Leader : 负责读写指定分区的节点
Replicas : 复制该分区log的节点列表
Isr : “in-sync” replicas,当前活跃的副本列表(是⼀个⼦集),并且可能成为Leader
4删除topic
bin/kafka-topics.sh \
--delete \
--zookeeper master001:2181,slave001:2181,slave002:2181/kafka \
--topic ruozedata
假如删除不净:1.linux磁盘文件夹 2.zk的/kafka的目录
ls /kafka/brokers/topics
ls /kafka/config/topics
默认delete.topic.enable=true,执行删除命令后,无需关心
删除不可逆,细心操作删除命令!
5 修改topic
# 修改分区数
bin/kafka-topics.sh \
--alter \
--zookeeper ruozedata001:2181,ruozedata002:2181,ruozedata003:2181/kafka \
--topic ruozedata
--partitions 3
6 生产者 生产数据
bin/kafka-console-producer.sh \
--broker-list master001:2181,slave001:2181,slave002:2181/kafka \
--topic ruozedata
7 消费者消费数据
bin/kafka-console-consumer.sh \
--bootstrap-server master001:2181,slave001:2181,slave002:2181/kafka \
--topic ruozedata \
--from-beginning
上一篇: Kafka的安装和使用
下一篇: Linux安装Kafka和简单使用