This tutorial assumes you are starting fresh and have no existing Kafka or ZooKeeper data. Since Kafka console scripts are different for Unix-based and Windows platforms, on Windows platforms use binwindows instead of bin/, and change the script extension to .bat.
第一步:下载 kafka
第二步 开启服务
指令: zookeeper-server-start.sh server.properties
创建create a topic
kafka-topics-sh --create --zookeeper master:2181 --replication-factor 1 --partitions 1 --topic test
看创建结果
kafka-topics-sh --list --zookeeper master:2181
发送一些信息
kafka-console-producer.sh --broker-list localhost:9092 --topic test
开启一个消费
kafka-console-consumer.sh --bootstrap-server master:9092 --topic test --from-beginning
建立一个有多个broker的集群
将config下的server.properties文件复制
更改里面的三行内容
- broker.id=1 id号唯一所以多个得用不同数字代替
2.listeners=planintext://:9093 过个broker需要改这个端口号
3.log.dir=/tmp/kafka-logs 更改文件名 保证每个broker都有有个 不重复
启动多个broker文件的时候 指令
kafka-server-start.sh server-1.properties &
kafka-server-start.sh server-2.properties &
&表示切换线程到后台执行
kafka-topics.sh --describe --zookeeper master:2181 --topic test
显示主分区一个 副本一个
显然这是kafka的高可用原因
第七步
利用
kafka练剑输入输出数据
通过控制台写数据 或者写数据返回到控制台是非常方便的. 但是你兴许想使用其他资源或者到处数据从kafka到系统上 对于许多系统 代替写定制代码 你可以通过kafka链接导入或者到处数据
Kafka链接是一个工具包括导入导出数据 运行在实现客户逻辑为交互扩展的系统 在这个快速开始的例子中我们将看到如何运行kafka链接通过简单的连接器导入数据从一个文件到Kafka 到出数据从Kafa到一个文件
echo -e "foonbar">test.txt
或者在windows上
echo foo>test.txt
echo bar>>test.txt
接下来 我们开启两个连接器 运行在standalone 模式中 这意味着他们运行在一个简单 的 当地 专用的通道 我们提供三个配置文件作为参数
第一个配置kafka链接进程 包含公共配置就像brokers链接序列化格式为数据 剩下的配置文件分别制定一个创建的连接器 这些文件都有唯一的链接器名字 以及类的实现 和其他的对连接器的要求
connect-standalone.sh config
/connect-standalone.properties config
/connect-file-source.properties config
/connect-file-sink.properties
这些例子配置文件 包括在Kafka 使用默认的当地集成配置有提前开启 并创建两个连接器 第一个是个资源连接器 用于读取行从输入的文件中并且生产作为一行存在Kafka 的topic中 第二个是一个冗余连接器 用于读取信息从Kafka的topic 中并且生成的作为一行存在输出文件中
在启动期间 已将会看到许多日志信息 包括一些指定的连接器被实现
一旦kafka链接进程开始 资源链接器就会开始读取行 从test,txt文件 并且生成他们到名为connect-test的topics中 然后就是冗余链接器会开始读取信息从topics为connect-test的分区中 并且写到test.sink.txt文件中 我们可以审核已经递交的数据通过整个管道从检查整个输出文件
more test.sink.txt
记录数据被存储在kafka的topic为connect-test中 所以我们也可以运行控制台的消费端 去开数据(或者使用客户的消费之代码运行它)
kafka-console-consumer.sh --bootstrap-server master :9093 --topic connect-test
第八步 使用Kafka 流 处理数据
kafka流是一个客户端的图书馆 为建立关键任务 实时应用 微服务 那些输入或者输出数据被存储在kafka集群上 卡夫卡流结合了编写和部署标准Java和Scala应用程序在客户端的简单性,以及卡夫卡服务器端集群技术的优点,使这些应用程序具有高度可伸缩性、弹性、容错、分布式等优点。