kafka和Flume的整合

目录

[一、Kafka作为Source 【数据进入到kafka中,抽取出来】](#一、Kafka作为Source 【数据进入到kafka中,抽取出来】)

1、在我的flume的conf文件夹下,有个myconf文件夹:

[2、 创建一个flume脚本文件: kafka-memory-logger.conf](#2、 创建一个flume脚本文件: kafka-memory-logger.conf)

3、测试

[二、kafka作为Sink 【数据从别的地方抽取到kafka里面】](#二、kafka作为Sink 【数据从别的地方抽取到kafka里面】)

1、创建一个flume脚本文件:flume-kafka-sink.conf

2、测试


一、Kafka作为Source 【数据进入到kafka中,抽取出来】

1、在我的flume的conf文件夹下,有个myconf文件夹:

2、 创建一个flume脚本文件: kafka-memory-logger.conf

flume学习网站:Flume 1.9用户手册中文版 --- 可能是目前翻译最完整的版本了 (liyifeng.org)

bash 复制代码
# 来到这个目录下
cd /opt/installs/flume/conf/myconf
# 创建一个conf文件
vi kafka-memory-logger.conf

在kafka-memory-logger.conf文件中写入:

a1.sources = r1

a1.channels = c1

a1.sinks=k1

a1.sources.r1.channels = c1

a1.sinks.k1.channel = c1

a1.sources.r1.type = org.apache.flume.source.kafka.KafkaSource

a1.sources.r1.kafka.bootstrap.servers = bigdata01:9092,bigdata02:9092,bigdata03:9092

a1.sources.r1.kafka.topics = bigdata

a1.sources.r1.kafka.consumer.group.id = text7

a1.sources.r1.batchSize = 100

a1.sources.r1.batchDurationMillis = 2000

a1.channels.c1.type = memory

a1.channels.c1.capacity = 1000

a1.channels.c1.transactionCapacity = 100

a1.sinks.k1.type = logger

a1.sinks.k1.maxBytesToLog = 128

3、测试

启动一个消息生产者,向topic中发送消息,启动flume,接收消息

  • 启动一个消息生产者,向topic中发送消息:
bash 复制代码
kafka-console-producer.sh --bootstrap-server bigdata01:9092 --topic bigdata
  • 启动flume,接收消息
bash 复制代码
flume-ng agent -n a1 -c ../ -f kafka-memory-logger.conf -Dflume.root.logger=INFO,console

二、kafka作为Sink 【数据从别的地方抽取到kafka里面】

1、创建一个flume脚本文件:flume-kafka-sink.conf

在flume-kafka-sink.conf文件中写入:

a1.sources = r1

a1.channels = c1

a1.sinks=k1

a1.sources.r1.channels = c1

a1.sinks.k1.channel = c1

a1.sources.r1.type = netcat

a1.sources.r1.bind = bigdata01

a1.sources.r1.port = 44444

a1.channels.c1.type = memory

a1.channels.c1.capacity = 1000

a1.channels.c1.transactionCapacity = 100

a1.sinks.k1.type = org.apache.flume.sink.kafka.KafkaSink

a1.sinks.k1.kafka.topic = bigdata

a1.sinks.k1.kafka.bootstrap.servers = bigdata01:9092,bigdata02:9092,bigdata03:9092

a1.sinks.k1.kafka.producer.acks = 1

a1.sinks.k1.kafka.producer.linger.ms = 1

2、测试

启动:

bash 复制代码
flume-ng agent -n a1 -c ../ -f flume-kafka-sink.conf -Dflume.root.logger=INFO,console

使用telnet命令,向端口发送消息:

bash 复制代码
yum -y install telnet

telnet bigdata01 44444

在窗口不断的发送文本数据,数据被抽取到了kafka中,如何获取kafka数据呢?使用消费者:

bash 复制代码
kafka-console-consumer.sh --topic bigdata --bootstrap-server bigdata01:9092
相关推荐
Surpass余sheng军5 小时前
AI 时代下的网关技术选型
人工智能·经验分享·分布式·后端·学习·架构
哈哈哈笑什么9 小时前
企业级高并发分布式SpringCloud系统下,订单动态超时自动取消(最终成熟方案),使用spring-cloud-starter-stream-rabbit
分布式·spring cloud·rabbitmq
哈哈哈笑什么9 小时前
Sleuth+Zipkin 与 OpenSearch 结合是企业级分布式高并发系统的“王炸组合”
分布式·后端·spring cloud
RestCloud10 小时前
如何用ETL做实时风控?从交易日志到告警系统的实现
数据库·数据仓库·kafka·数据安全·etl·数据处理·数据集成
哈哈哈笑什么11 小时前
在高并发分布式SpringCloud系统中,什么时候时候并行查询,提高查询接口效率,从10s到100ms
java·分布式·后端
阿杰同学13 小时前
Hadoop 面试题及答案整理,最新面试题
大数据·hadoop·分布式
听风吟丶14 小时前
微服务分布式事务实战:从数据一致性到故障恢复全方案
分布式·微服务·架构
ClouGence15 小时前
从 0 到 1 构建 TDSQL MySQL 实时同步链路
数据库·分布式·sql·mysql
技术破壁人15 小时前
Kafka 的自动提交机制详解:Spring Boot 中如何正确使用?
kafka
哈哈哈笑什么15 小时前
完整Redis分布式锁技术方案(基于Redisson)
redis·分布式·spring cloud