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目录下了

常用脚本命令

  1. 创建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 详细信息:

[root@master001 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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冬瓜螺旋雪碧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值