Flume-A:从网络端口采集数据输出到控制台

1概述

了解一个框架就去它的官网上看 http://flume.apache.org/
Flume is a distributed, reliable, and available service for efficiently collecting, aggregating, and moving large amounts of log data. It has a simple and flexible architecture based on streaming data flows. It is robust and fault tolerant with tunable reliability mechanisms and many failover and recovery mechanisms. It uses a simple extensible data model that allows for online analytic application.
在这里插入图片描述

使用:使用flume的关键就是写配置文件
A) 配置Source
B) 配置Channel
C) 配置Sink
D) 把它们串联起来

第一种方式:从网络端口采集数据输出到控制台

netcat source +memory channel +logger sink

# Name the components on this agent   定义这个Agent名称为a1,sources,sinks,channels名称为r1,k1,c1
a1.sources = r1
a1.sinks = k1
a1.channels = c1

### 配置Flume采集端口数据并传输至Kafka 为了实现从指定端口收集数据并通过Flume将其发送到Kafka,需遵循一系列最佳实践来确保配置的高效性和稳定性。 #### 创建必要的Kafka环境准备 在开始之前,应先启动Zookeeper服务和Kafka服务器,并创建用于存储来自Flume消息的主题。命令如下所示: ```bash ./bin/zkServer.sh start ./bin/kafka-server-start.sh -daemon ./config/server.properties ./bin/kafka-topics.sh --create --topic flume_topic --partitions 3 --replication-factor 1 --zookeeper localhost:2181 ``` 此过程初始化了一个名为`flume_topic`的新主题,它具有三个分区和一个副本因子[^4]。 #### 构建Flume配置文件 接下来构建`flume-conf.properties`文件,在其中定义source、channel与sink组件之间的交互方式。对于本案例而言,采用Netcat作为Source监听特定TCP端口上的输入流;Memory Channel负责临时缓存待处理的消息;而最终目的地则是指向先前建立好的Kafka Topic的Avro Sink。 以下是具体的配置实例: ```properties # 定义agent名称 a1.sources = r1 a1.channels = c1 a1.sinks = k1 # 设置source为netcat类型, 并绑定到本地机器的44444端口上等待客户端连接. a1.sources.r1.type = netcat a1.sources.r1.bind = localhost a1.sources.r1.port = 44444 # 使用memory channel快速传递事件给下游模块 a1.channels.c1.type = memory a1.channels.c1.capacity = 1000 a1.channels.c1.transactionCapacity = 100 # 将sink设置成org.apache.flume.sink.kafka.KafkaSink类, # 这样可以直接向Kafka topic发布记录. a1.sinks.k1.type = org.apache.flume.sink.kafka.KafkaSink a1.sinks.k1.topic = flume_topic a1.sinks.k1.brokerList = localhost:9092 a1.sinks.k1.requiredAcks = 1 a1.sinks.k1.batchSize = 20 # 绑定各部分之间的工作流程 a1.sources.r1.channels = c1 a1.sinks.k1.channel = c1 ``` 上述配置实现了通过监听44444端口接收外部传入的日志条目,并立即将其转发给位于同一台主机上的Kafka集群中的`flume_topic`。 #### 测试配置有效性 完成以上步骤之后,可以通过telnet工具模拟日志生产者角色,尝试向目标端口发送一些测试字符串验证整个链路是否正常工作: ```bash telnet master 44444 ``` 与此同时开启另一个终端窗口执行消费者脚本来实时观察新到达的信息片段: ```bash ./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic flume_topic --from-beginning ``` 如果一切顺利的话,则应该能够在控制台上看到由Flume捕获并经由Kafka传播过来的内容展示出来[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值