前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Kafka QUICKSTART

Kafka QUICKSTART

作者头像
conanma
发布2022-04-11 18:59:08
3880
发布2022-04-11 18:59:08
举报
文章被收录于专栏:正则正则

一. 安装和启动Kafka

我本地机器已经安装CDH 6.3.1版本,此处省略安装和启动Kafka的步骤。

Kafka版本:2.2.1

代码语言:javascript
复制
ps -ef|grep '/libs/kafka.\{2,40\}.jar'

1.1 Kafka的配置文件

代码语言:javascript
复制
[root@hp1 config]# find / -name server.properties
/opt/cloudera/parcels/CDH-6.3.1-1.cdh6.3.1.p0.1470567/etc/kafka/conf.dist/server.properties

常用的配置如下:

代码语言:javascript
复制
#broker 的全局唯一编号,不能重复
broker.id=0
#删除 topic 功能使能
delete.topic.enable=true
#处理网络请求的线程数量
num.network.threads=3
#用来处理磁盘 IO 的线程数量
num.io.threads=8
#发送套接字的缓冲区大小
socket.send.buffer.bytes=102400
#接收套接字的缓冲区大小
socket.receive.buffer.bytes=102400
#请求套接字的缓冲区大小
socket.request.max.bytes=104857600
#kafka 运行日志存放的路径
log.dirs=/opt/module/kafka/logs
#topic 在当前 broker 上的分区个数
num.partitions=1
#用来恢复和清理 data 下数据的线程数量
num.recovery.threads.per.data.dir=1
#segment 文件保留的最长时间,超时将被删除
log.retention.hours=168
#配置连接 Zookeeper 集群地址
zookeeper.connect=hadoop102:2181,hadoop103:2181,hadoop104:2181

二. 创建一个主题来存储事件

Kafka是一个分布式的事件流平台,可以让你跨多台机器读、写、存储和处理事件(在文档中也称为记录或消息)。

示例事件包括支付交易、来自移动电话的地理位置更新、发货订单、来自物联网设备或医疗设备的传感器测量,等等。这些事件被组织并存储在主题中。很简单,一个主题类似于文件系统中的一个文件夹,事件就是该文件夹中的文件。

2.1 创建主题

所以在你写你的第一个事件之前,你必须创建一个主题。打开另一个终端会话并运行:

代码语言:javascript
复制
/opt/cloudera/parcels/CDH-6.3.1-1.cdh6.3.1.p0.1470567/lib/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic first

2.2 查看当前事件描述

所有Kafka的命令行工具都有额外的选项:运行不带任何参数的Kafka -topics.sh命令来显示使用信息。例如,它还可以显示新主题的分区计数等详细信息:

代码语言:javascript
复制
-- 查看主题topic的描述
/opt/cloudera/parcels/CDH-6.3.1-1.cdh6.3.1.p0.1470567/lib/kafka/bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic first
-- 查看所有的topic的描述
/opt/cloudera/parcels/CDH-6.3.1-1.cdh6.3.1.p0.1470567/lib/kafka/bin/kafka-topics.sh --describe --zookeeper localhost:2181

一个分区一个副本

我们来看看创建多分区多副本

代码语言:javascript
复制
/opt/cloudera/parcels/CDH-6.3.1-1.cdh6.3.1.p0.1470567/lib/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic first_1_1
/opt/cloudera/parcels/CDH-6.3.1-1.cdh6.3.1.p0.1470567/lib/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 2 --topic first_1_2
/opt/cloudera/parcels/CDH-6.3.1-1.cdh6.3.1.p0.1470567/lib/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 2 --partitions 2 --topic first_2_2
/opt/cloudera/parcels/CDH-6.3.1-1.cdh6.3.1.p0.1470567/lib/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 3 --topic first_3_3

本地测试只有3台broker,所以最多只能创建3个replication-factor

2.3 删除主题

需要 server.properties中设置 delete.topic.enable=true否则只是标记删除。 否则只是标记删除。

代码语言:javascript
复制
cd /opt/cloudera/parcels/CDH-6.3.1-1.cdh6.3.1.p0.1470567/lib/kafka/bin
./kafka-topics.sh  --zookeeper localhost:2181 --delete --topic first

三. 在主题中加入一些事件

Kafka客户端通过网络与Kafka的代理通信,用于写(或读)事件。一旦收到,代理将以持久和容错的方式存储事件,只要您需要—甚至永远。

运行控制台生成程序客户端,在主题中写入一些事件。默认情况下,您输入的每一行都将导致一个单独的事件被写入主题。

代码语言:javascript
复制
/opt/cloudera/parcels/CDH-6.3.1-1.cdh6.3.1.p0.1470567/lib/kafka/bin/kafka-console-producer.sh --broker-list 10.31.1.124:9092 --topic first

四. 读事件

打开另一个终端会话并运行控制台消费者客户端来读取你刚刚创建的事件:

代码语言:javascript
复制
/opt/cloudera/parcels/CDH-6.3.1-1.cdh6.3.1.p0.1470567/lib/kafka/bin/kafka-console-consumer.sh --from-beginning --bootstrap-server 10.31.1.124:9092 --topic first

--from-beginning:会把主题中以往所有的数据都读取出来。

您可以随时使用Ctrl-C停止客户端。

您可以自由地进行试验:例如,切换回您的生产者终端(上一步)来编写额外的事件,并查看这些事件如何立即显示在您的消费者终端上。

因为事件是持久性存储在Kafka中,它们可以被任意多的消费者读取。您可以通过再次打开另一个终端会话并再次运行前面的命令来轻松验证这一点。

六. 用kafka connect导入/导出你的数据作为事件流

您可能在现有系统(如关系数据库或传统消息传递系统)中有许多数据,以及许多已经使用这些系统的应用程序。Kafka Connect允许你不断地从外部系统获取数据到Kafka,反之亦然。因此,将现有系统与Kafka集成是非常容易的。为了使这个过程更容易,有数百个这样的连接器。

看看Kafka Connect部分,了解更多关于如何不断地导入/导出你的数据到Kafka。

七. 用kafka流处理你的事件

一旦你的数据以事件的形式存储在Kafka中,你就可以用Java/Scala的Kafka Streams客户端库来处理这些数据。它允许你实现关键任务实时应用和微服务,其中输入和/或输出数据存储在Kafka主题。Kafka Streams结合了客户端编写和部署标准Java和Scala应用程序的简单性和Kafka服务器端集群技术的优点,使这些应用程序具有高度的可扩展性、弹性、容错性和分布式。该库支持一次处理、有状态操作和聚合、窗口、连接、基于事件时间的处理等等。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一. 安装和启动Kafka
    • 1.1 Kafka的配置文件
    • 二. 创建一个主题来存储事件
      • 2.1 创建主题
        • 2.2 查看当前事件描述
          • 2.3 删除主题
          • 三. 在主题中加入一些事件
          • 四. 读事件
          • 六. 用kafka connect导入/导出你的数据作为事件流
          • 七. 用kafka流处理你的事件
          相关产品与服务
          专用宿主机
          专用宿主机(CVM Dedicated Host,CDH)提供用户独享的物理服务器资源,满足您资源独享、资源物理隔离、安全、合规需求。专用宿主机搭载了腾讯云虚拟化系统,购买之后,您可在其上灵活创建、管理多个自定义规格的云服务器实例,自主规划物理资源的使用。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档