大数据课程I1——Kafka的概述

文章作者邮箱:[email protected]              地址:广东惠州

 ▲ 本章节目的

⚪ 了解Kafka的概念;

⚪ 掌握Kafka的配置与启动;

一、简介

1. 基本概念

Apache kafka 是一个分布式数据流平台。可以从如下几个层面来理解:

1. 我们可以向Kafka发布数据以及从Kafka订阅数据,即我们可以将Kafka看作是一个消息队列或者企业消息系统。所起的作用:缓冲(消峰限流),实现生产与消费的解耦。

2. Kafka可以存储数据,并提供容错机制。即数据丢失后可以进行恢复。

大数据课程I1——Kafka的概述_第1张图片

3. 当数据到达Kafka之后,可以马上的被消费处理。即Kafka的延迟很低。

我们可以人为Kafka具备以上三个方面的明显能力。根据Kafka的这些特点,Kafka的适用场景就是:搭建实时流平台的中间件

2. kafka用途

1. 在系统或者应用程序之间构建实时数据传输管道。

2. 构建实时处理数据流的应有程序。

在实际工作中,对数据的处理方式有两种:

1. 离线批处理。

2. 实时流处理。

大数据课程I1——Kafka的概述_第2张图片

二、Kafka配置与启动

1. 基本概念

1.kafka是以集群部署方式运行在一台或多台服务器上。

2.kafka存储数据的类别成为topic。

3.在kafka中每一条记录包含一个key,一个value以及一个时间戳。

大数据课程I1——Kafka的概述_第3张图片

2. Kafka配置

1.通过wget从官网下载安装包 Apache Kafka。

2.上传到01虚拟机,解压。

3.进入Kafka安装目录下的config目录。

4.对server.properties进行配置。

 配置示例:

broker.id=1

log.dirs=/home/software/kafka/kafka-logs

zookeeper.connect=hadoop01:2181,hadoop02:2181,hadoop03:2181

delete.topic.enable=true

advertised.host.name=192.168.234.21

advertised.port=9092

5.保存退出后,别忘了在安装目录下创建 kafka-logs目录

6.配置其他两台虚拟机,更改配置文件的broker.id编号(不重复即可)。可以通过远程拷贝,将01的Kafka发送给02,03,更改broker.id即可。

#切换到/home/software目录,执行如下指令:

scp -r kafka_2.11-1.0.0 hadoop02:/home/software/

scp -r kafka_2.11-1.0.0 hadoop03:/home/software/

7.先启动zookeeper集群

#进入zookeeper的bin目录,执行如下指令:

sh zkServer.sh start

#查看zookeeper角色状态

sh zkServer.sh status 

8.启动kafka集群

#进入Kafka的bin目录,执行如下指令:

sh kafka-server-start.sh ../config/server.properties

#退出:ctrl+c

3. Kafka使用

1.创建自定义的topic

在bin目录下执行:

sh kafka-topics.sh --create --zookeeper hadoop01:2181 --replication-factor 1 --partitions 1 --topic enbook

注:副本数量要小于等于节点数量

2.查看所有的topic

sh kafka-topics.sh --list --zookeeper hadoop01:2181

3.启动producer

sh kafka-console-producer.sh --broker-list hadoop01:9092  --topic  enbook

4.启动consumer

[root@hadoop01 bin]# sh kafka-console-consumer.sh --zookeeper hadoop01:2181 --topic enbook --from-beginning

5.可以通过producer和consumer模拟消息的发送和接收

6.删除topic指令:

进入bin目录,执行如下指令:

sh kafka-topics.sh --delete --zookeeper hadoop01:2181 --topic  enbook

可以通过配置 config目录下的 server.properties文件,加入如下的配置:

 配置示例:

delete.topic.enable=true

 

 

你可能感兴趣的:(大数据,kafka,分布式)