Kafka 快速起步
Kafka 快速起步
主要内容:
1. kafka 安装、启动
2. 消息的 生产、消费
3. 配置启动集群
4. 集群下的容错测试
5. 从文件中导入数据,并导出到文件
单机示例
安装
tar -xzf kafka_2.10-0.10.1.1.tgz
cd kafka_2.10-0.10.1.1
启动
> bin/zookeeper-server-start.sh \config/zookeeper.properties> bin/kafka-server-start.sh \config/server.properties
创建topic
打开一个新的终端窗口
bin/kafka-topics.sh --create \--zookeeper localhost:2181 \--replication-factor 1 \--partitions 1 \--topic test
发送消息
打开一个新的终端窗口
bin/kafka-console-producer.sh \--broker-list localhost:9092 \--topic test
进入输入模式,随意输入信息,例如:
hello world
hi
获取消息
打开一个新的终端窗口
bin/kafka-console-consumer.sh \--bootstrap-server localhost:9092 \--topic test \--from-beginning
便会显示出刚才发送的两条消息:
hello world
hi
这时可以打开发送消息的终端窗口,输入新的信息,再返回来就可以看到自动接收到了新消息
配置集群
新建两个启动配置文件
> cp config/server.properties \config/server-1.properties> cp config/server.properties \
config/server-2.properties
修改 config/server-1.properties 的以下几项配置:
broker.id=1
listeners=PLAINTEXT://:9093
log.dir=logs/kafka-logs-1
修改 config/server-2.properties 的以下几项配置:
broker.id=2
listeners=PLAINTEXT://:9094
log.dir=logs/kafka-logs-2
启动
> bin/kafka-server-start.sh \config/server-1.properties &> bin/kafka-server-start.sh \
config/server-2.properties &
创建一个topic,设置3个复制
bin/kafka-topics.sh --create \--zookeeper localhost:2181 \--replication-factor 3 \--partitions 1 \--topic my-replicated-topic
发送消息
bin/kafka-console-producer.sh --broker-list localhost:9092 \--topic my-replicated-topic
输入消息:
my test message 1
my test message 2
获取消息
bin/kafka-console-consumer.sh \--bootstrap-server localhost:9092 \--from-beginning \--topic my-replicated-topic
可以正常取得消息
容错测试
# 取得server1的进程号
ps aux | grep server-1.properties
# 杀掉进程
kill -9 43116
读取消息
bin/kafka-console-consumer.sh \--bootstrap-server localhost:9092 \--from-beginning \--topic my-replicated-topic
返回信息:
my test message 1
my test message 2
仍然可以正常取得消息
Kafka Connect
Kafka 中的 connecter 可以与外部系统进行连接,例如文件系统、数据库
下面实验一个简单文件系统交互,从一个文件中导入数据,然后导出到另一个文件中
创建一个测试文件,用于导入数据使用
echo -e "foo\nbar" > test.txt
启动 connect,执行数据的导入导出
bin/connect-standalone.sh \
config/connect-standalone.properties \
config/connect-file-source.properties \
config/connect-file-sink.properties
命令执行后,会输出一系列的日志信息,等待执行完毕
查看导出结果
cat test.sink.txt
返回结果:
foo
bar
成功导出了 test.txt 中的数据
过程分析
执行第2步的命令后,为什么是去读test.txt?为什么写入了test.sink.txt?中间的过程是什么样的?
原因是在于两个配置文件
config/connect-file-source.properties (导入配置)
name=local-file-source
connector.class=FileStreamSource
tasks.max=1
file=test.txt
topic=connect-test
file指定了是从test.txt中导入数据
topic指定了把数据发送到connect-test这个topic
connect-file-sink.properties(导出配置)
name=local-file-sink
connector.class=FileStreamSink
tasks.max=1
file=test.sink.txt
topics=connect-test
file指定了把数据导出到test.txt中导入数据
topic指定从connect-test这个topic中读取数据
查看一下connect-test这个topic
bin/kafka-console-consumer.sh \--bootstrap-server localhost:9092 \--topic connect-test \--from-beginning
结果为:
{"schema":{"type":"string","optional":false},"payload":"foo"}
{"schema":{"type":"string","optional":false},"payload":"bar"}
现在向test.txt中添加一条新数据:
echo "Another line" >> test.txt
再次执行 cat test.sink.txt 就会看到刚刚添加的数据:
foo
bar
Another line
更多介绍: http://www.cnblogs.com/ximengchj/p/6423704.html
相关文章:
点击 “阅读原文” 查看 文章列表
人赞赏
Kafka 快速起步的更多相关文章
- Kafka 快速起步(作者:杜亦舒)
Kafka 快速起步 原创 2017-01-05 杜亦舒 性能与架构 主要内容:1. kafka 安装.启动2. 消息的 生产.消费3. 配置启动集群4. 集群下的容错测试5. 从文件中导入数据,并导 ...
- JUnit三分钟教程 ---- 快速起步
JUnit三分钟教程 ---- 快速起步 摘自http://lavasoft.blog.51cto.com/62575/65625/ JUnit是个好东西,做大点的项目离不开这东西,实际中用的时候也因 ...
- 【译】快速起步-JSX简介
react version: 15.5.0 快速起步-JSX简介 思考这个变量申明: const element = <h1>Hello, world!</h1>; 这个有趣的 ...
- docker安装kafka快速入门
docker安装kafka快速入门 1.安装zookeeper docker search zookeeperdocker pull zookeeperdocker run -d -v /home/s ...
- Kafka快速上手(2017.9官方翻译)
为了帮助国人更好了解.上手kafka,特意翻译.修改了个文档.官方Wiki : http://kafka.apache.org/quickstart 快速开始 本教程假定您正在开始新鲜,并且没有现有的 ...
- kafka快速入门(官方文档)
第1步:下载代码 下载 1.0.0版本并解压缩. > tar -xzf kafka_2.11-1.0.0.tgz > cd kafka_2.11-1.0.0 第2步:启动服务器 Kafka ...
- kafka快速开始教程
此教程假设你刚刚开始没有任何 Kafka 或 ZooKeeper 数据.Kafka的控制台脚本在类Unix和Windows平台不同,Windows平台使用bin\windows\\代替bin/,脚本的 ...
- kafka快速入门到精通
目录 1. 消息队列两种模式 1.1 消息队列作用 1.2 点对点模式(一对一,消费者主动拉取数据,消息收到后消息删除) 1.3 发布/订阅模式(一对多,消费数据之后不会删除消息) 1.4 kafka ...
- kafka快速入门
一.kafka简介 kafka,ActiveMQ,RabbitMQ是当今最流行的分布式消息中间件,其中kafka在性能及吞吐量方面是三者中的佼佼者,不过最近查阅官网时,官方与它的定义为一个分布式流媒体 ...
随机推荐
- express路由和中间件
路由 简单来说,express路由就是用来处理一些请求,响应一些url地址. var express = require('express'); var app = express(); app.ge ...
- codevs 1345 饥饿的奶牛
1345 饥饿的奶牛 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description John养了若干奶牛,每天晚上奶牛都要进食.由于条件比较 ...
- 按树型显示BOM的结构
在制造企业中,生产的每一个产品都由一道或多道工序组成,在组成成品之前,每一道工序经由物料--物料组成半成品,或物料--半成品组成新的半成品,亦或由半成品--半成品组成新的半成品.复杂的成品经由多道工序 ...
- css/js(工作中遇到的问题)-6
页面resize方法 if(document.createEvent) { const event = document.createEvent ("HTMLEvents"); e ...
- Setup JIRA Service Desk 3.9.2 on Oracle Linux 6.8
OS Oracle Linux 6.8 V138414-01.iso Database mysql5.6.30 MySQL-5.6.30-1.el6.x86_64.rpm-bundle.tar JIR ...
- Sqlserver数据库还原.bak文件失败的两个问题
一.SQL Server数据库备份还原后,在数据库名称后会出现“受限制访问”字样 解决方案:将数据库限制访问改为:SINGLE_USER 数据库-->属性-->选项-->状 ...
- OTL调用存储过程/函数及注意事项
OTL 是 Oracle, Odbc and DB2-CLI Template Library 的缩写,是一个 C++ 编译中操控关系数据库的模板库,它目前几乎支持所有的当前各种主流数据库. OTL ...
- android 开源项目集合
http://p.codekk.com/ http://www.apkbus.com/code.php http://androidxref.com/ https://www.androidos.ne ...
- NetBiosDomainNamesEnabled与SharePoint User Profile Service Application
本文中的内容转自参考资料中的文章. 如果域的NetBios名字跟Fully Qualified Domain Name不同的话, 那么就需要开启UPA的NetBiosDomainNamesEnab ...
- shell遍历文件夹并执行命令
背景: 有一个源码包里面包含很多子目录和makefile,打包后的压缩包太大,需要将make生成的所有二进制文件删除然后再打包. 需求: 因此,要求在制定目录的所有递归子目录中执行make clean ...