一同大数据吧-Kafka环境搭建和实际

图灵汇官网

Kafka与Zookeeper简介

Kafka是一种分布式、支持分区和多副本的消息系统,它依赖Zookeeper进行协调。其最大特点在于能够实时处理大量数据,以适应多种需求场景,例如基于Hadoop的批处理系统、低延迟的实时系统、Storm或Spark流式处理引擎、Web/Nginx日志、访问日志以及消息服务等。Kafka主要由Scala和Java编写,LinkedIn于2010年将其贡献给Apache基金会,并成为顶级开源项目。

Zookeeper则是一个分布式、开源的应用程序协调服务,它是Google Chubby服务的一个开源实现,也是Hadoop和HBase的重要组成部分。Zookeeper提供了一系列关键功能,如配置维护、命名服务、分布式同步和组服务等。

由于Kafka支持集群部署,因此需要借助Zookeeper进行管理。

环境与软件版本

本次操作基于Windows环境,使用的Kafka和Zookeeper版本均为官网最新稳定版。

  • Windows 10
  • Kafka 2.12-2.8.0
  • Apache Zookeeper 3.6.3

安装Zookeeper

首先,将zoo_sample.cfg文件复制并重命名为zoo.cfg。然后,在命令行中执行以下命令:

bash D:LearnFilebigdataapache-zookeeper-3.6.3-binbin> .zkServer.cmd

这一步骤用于启动Zookeeper服务。

安装Kafka

接下来,通过执行以下命令启动Kafka服务:

bash D:LearnFilebigdatakafka> .binwindowskafka-server-start.bat .configserver.properties

若打印信息显示安装成功,则表明Kafka安装无误。

创建Producer与Consumer

为了演示,我们将创建一个Producer和一个Consumer。

创建Producer

在新的命令行窗口中输入以下命令,以创建一个Producer,用于向名为hellotest的主题发送消息:

bash D:LearnFilebigdatakafka> .binwindowskafka-console-producer.bat --broker-list localhost:9092 --topic hellotest

创建Consumer

同样地,在另一个新的命令行窗口中输入以下命令,以创建一个Consumer,用于从Kafka拉取消息:

bash D:LearnFilebigdatakafka> .binwindowskafka-console-consumer.bat --bootstrap-server localhost:9092 --topic hellotest

测试Hello World消息

当Producer发送一条消息时,可以在Consumer端看到这条消息被成功接收。

总结

Kafka作为一款分布式、高性能且可靠的消息中间件,已在众多实时大数据处理场景中广泛应用,包括Hadoop的批处理系统、实时系统、Storm/Spark流式处理引擎、ELK日志系统、Web实时数据和消息服务等。通过搭建和熟悉Kafka的基本原理及配置,未来我们可以利用Java API进行Kafka的消息注入与消费。后续还将介绍如何构建Kafka环境并通过Java API进行消息编程。

本文来源: 图灵汇 文章作者: 施应峰