windows本地kafka和zookeeper单机版

1 篇文章 0 订阅


一、安装zookeeper

1.下载zookeeper:zookeeper下载

此文使用版本:apache-zookeeper-3.6.4

2.添加配置文件

在config目录下复制一份zoo_sample.cfg文件到同级目录,然后更改名称为zoo.cfg

tickTime=2000
initLimit=10
syncLimit=5
clientPort=2181
dataDir=D:\\xxx\\apache-zookeeper-3.6.4-bin\\data
dataLogDir=D:\\xxx\\apache-zookeeper-3.6.4-bin\\log

3.配置windows系统环境变量(可以百度)

1).新建zookeeper系统变量

变量名:ZOOKEEPER_HOME
变量值:D:\xxx\apache-zookeeper-3.6.4-bin

在这里插入图片描述
2).添加配置path

%ZOOKEEPER_HOME%\bin

在这里插入图片描述

4.随便打开一个cmd

1).cmd启动zookeeper服务端运行

C:\Users\xxx>zkCli

在这里插入图片描述
2).cmd启动zookeeper客户端(可以不用启动,截图略)

C:\Users\xxx>zkCli

二、安装kafka

1.下载kafka

kafka 下载
此文下载的kafka版本:kafka_2.12-3.5.1

2.修改config目录下的server.properties

zookeeper.connect=localhost:2181
log.dirs=D:\\xxx\\kafka_2.12-3.5.1\\logs

server.properties配置完后,需要在kafka_2.12-3.5.1目录下建logs目录

三,开始运行zookeeper和kafka

1.运行一个zookeeper server

在这里插入图片描述

2.启动kafka 服务

启动服务(进到kafka安装文件目录)

.\bin\windows\kafka-server-start.bat .\config\server.properties

在这里插入图片描述

3.运行kafka 创建topic,查看topic等

进入解压kafka对应的盘,执行bat命令

#创建主题
.\kafka-topics.bat --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 5 --topic test

#查询主题
.\kafka-topics.bat --bootstrap-server localhost:9092 --list

#启动消费者消费消息
.\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test --from-beginning

#启动生产者
.\kafka-console-producer.bat --broker-list localhost:9092 --topic test

![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/9bd6a945a7904837963fe90a492ade7f.png
总结:上面总共开启了3个cmd。zookeeper配置环境变量,在cmd中可以不指定路径,直接执行。kafka没有配置环境变量,要有路径执行。

其他

1).当向kafka中发送数据时,发送的明明是中文没有乱码,程序读取时是乱码。在排查时发现开启一个cmd 消费刚刚发送的topic数据,发现已经乱码了。下面是解决kafka中文乱码问题:

1.打开Kafka的配置文件server.properties,可以使用文本编辑器打开。

2.在文件中查找producer.encoding属性,如果没有则可以手动添加。

3.将属性值设置为所需的编码格式,例如UTF-8。

4.保存文件并重启Kafka服务。

或使用命令指定utf-8

设置完成后,使用kafka-console-producer命令发送消息时,就会使用所设置的编码格式。例如:
.\kafka-console-producer --broker-list localhost:9092 --topic test --property "producer.encoding=UTF-8"

该命令将使用UTF-8编码格式发送消息到名为test的主题。

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Flink 是一个分布式流处理框架,它可以用来消费 Kafka 中的数据。下面是一个简单的代码示例: ``` import org.apache.flink.streaming.api.scala._ import org.apache.flink.streaming.connectors.kafka._ // 创建 Flink 流处理环境 val env = StreamExecutionEnvironment.getExecutionEnvironment // 设置 Kafka 参数 val properties = new Properties() properties.setProperty("bootstrap.servers", "localhost:9092") properties.setProperty("group.id", "flink-group") // 创建 Kafka 消费者 val consumer = new FlinkKafkaConsumer[String]("topic", new SimpleStringSchema(), properties) // 将 Kafka 中的数据读入 Flink 流 val stream = env.addSource(consumer) // 对数据进行处理 val result = stream.map(x => x + " processed") // 将处理后的数据输出到控制台 result.print() // 执行 Flink 程序 env.execute("Flink Kafka Consumer Example") ``` 在这个示例中,我们创建了一个 Flink 流处理环境,然后创建了一个 Kafka 消费者,并将其配置为读取 "topic" 这个主题的数据。然后,我们将 Kafka 中的数据读入 Flink 流,对数据进行处理,最后将处理后的数据输出到控制台。 请注意,这只是一个简单的示例,您可以根据自己的需要对数据进行更复杂的处理。 ### 回答2: Flink 是一种流处理框架,它能够非常方便地从 Kafka 中消费数据,并将其转换为表格形式进行处理。下面是一个用于消费 Kafka 表的 Flink 代码示例: 首先,您需要引入相应的依赖包: ``` <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_${scala.binary.version}</artifactId> <version>${flink.version}</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-connector-kafka_${scala.binary.version}</artifactId> <version>${flink.version}</version> </dependency> ``` 接下来,您需要初始化 Flink 执行环境: ``` StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); env.setStreamTimeCharacteristic(TimeCharacteristic.EventTime); // 指定事件时间特性 env.enableCheckpointing(5000); // 开启检查点,以实现容错 ``` 然后,您需要定义 Kafka 数据源: ``` Properties properties = new Properties(); properties.setProperty("bootstrap.servers", "your-kafka-servers"); properties.setProperty("group.id", "your-consumer-group"); properties.setProperty("auto.offset.reset", "latest"); // 设置消费者的 offset 策略 DataStream<String> kafkaStream = env.addSource(new FlinkKafkaConsumer<>("your-topic", new SimpleStringSchema(), properties)); ``` 接下来,您可以将 Kafka 数据流转换为表格形式: ``` Table kafkaTable = tEnv.fromDataStream(kafkaStream, $("field1"), $("field2"), ...); ``` 然后,您可以使用 SQL 或 Table API 对表格进行查询、转换和处理: ``` Table resultTable = kafkaTable.select($("field1"), $("field2")) .filter($("field1").isNotNull()); ``` 最后,您可以将结果表格输出到另一个 Kafka 主题中: ``` kafkaTable.toAppendStream(TypeInformation.of(String.class)).addSink(new FlinkKafkaProducer<>("output-topic", new SimpleStringSchema(), properties)); ``` 使用上述步骤,您可以轻松地在 Flink 中消费 Kafka 中的数据,并以表格形式进行处理和输出。希望本回答对您有所帮助! ### 回答3: 使用Flink消费Kafka表需要进行以下步骤: 首先,需要在Flink程序中引入相应的依赖,例如flink-connector-kafkaflink-table-api-java,可以通过在pom.xml文件中添加对应的依赖来实现。 接下来,可以使用Table API或SQL API创建一个TableEnvironment,用于定义和执行Flink程序中的表操作。 接着,可以使用Table Environment的connect方法连接到Kafka,并将Kafka作为一个外部系统注册到Table Environment中。可以指定Kafka的连接属性,如Kafka的主题、Zookeeper地址等。注册完成后,Flink将能够通过Table API或SQL API访问Kafka表。 在注册完Kafka表之后,可以使用Table API或SQL API来查询和处理Kafka表。可以通过编写Flink SQL查询语句来过滤、聚合或转换数据。例如,可以使用SELECT语句选择所需的字段,使用WHERE语句过滤数据,使用GROUP BY语句进行分组,使用JOIN语句将多个表连接在一起等。 最后,可以使用Table Environment的toAppendStream或toRetractStream方法将查询结果转换为DataStream,并以流的形式进行处理。可以选择将结果打印到控制台、写入到文件、发送到其他系统等。 需要注意的是,消费Kafka表时需要配置合适的消费组id,以保证消息的顺序和一致性。另外,还可以配置其他消费相关的属性,如消费超时时间、最大拉取记录数等。 综上所述,通过以上步骤,可以使用Flink消费Kafka表,实现对Kafka中的数据进行处理和分析。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值