Flume作业 nc|exec-memory-logger

Flume数据采集配置实战
本文介绍如何使用Flume从NetCat和Exec源采集数据,并通过内存通道输出到控制台。详细展示了配置文件的设置,包括绑定地址、监听端口及执行命令等参数。同时,验证了配置的有效性并通过telnet和文件追加方式测试数据输入。

需求:

    Flume的Source从NetCat 和 Exec上采集数据到通过内存输出到控制台




这里memory也可以是file聚合,checkpointDir记录偏移量

# Use a channel which buffers events in memory
agent1.channels.channel1.type = file
agent1.channels.channel1.checkpointDir=/var/checkpoint 
agent1.channels.channel1.dataDirs=/var/tmp
agent1.channels.channel1.capacity = 1000
agent1.channels.channel1.transactionCapactiy = 100


这里采取memory配置文件:

a1.sources = r1 r2
a1.sinks = k1
a1.channels = c1
a1.sources.r1.channels = c1
a1.sources.r1.type = netcat
a1.sources.r1.bind = 0.0.0.0
a1.sources.r1.port = 44444
a1.sources.r2.channels = c1
a1.sources.r2.type = exec
a1.sources.r2.command = tail -F /home/hadoop/data/data.log
# Describe the sink
a1.sinks.k1.type = logger
# Use a channel which buffers events in memory
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
# Bind the source and sink to the channel
a1.sources.r1.channels = c1
a1.sources.r2.channels = c1
a1.sinks.k1.channel = c1


测试结果:

[hadoop@hadoop001 ~]$ telnet localhost 44444
Trying ::1...
Connected to localhost.
Escape character is '^]'.
ZOURC123456789
OK
[hadoop@hadoop001 data]$ echo 123 >> data.log
[hadoop@hadoop001 data]$


控制台输出结果:

2018-08-10 20:12:10,426 (SinkRunner-PollingRunner-DefaultSinkProcessor) [INFO - org.apache.flume.sink.LoggerSink.process(LoggerSink.java:94)] Event: { headers:{} body: 31 32 33                                        123 }
2018-08-10 20:12:32,439 (SinkRunner-PollingRunner-DefaultSinkProcessor) [INFO - org.apache.flume.sink.LoggerSink.process(LoggerSink.java:94)] Event: { headers:{} body: 5A 4F 55 52 43 31 32 33 34 35 36 37 38 39 0D    ZOURC123456789. }


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31441024/viewspace-2199833/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/31441024/viewspace-2199833/

## 题目重述 你需要创建一个Flume配置文件 `flume-conf.properties`,用于配置Flume Agent来采集用户行为日志,并将数据传输到HDFS。 --- ## 详解 ### 创建 Flume 配置文件 `flume-conf.properties` Flume 的配置文件是一个 `.properties` 文件,用于定义 Agent 中的 Source、Channel 和 Sink。以下是如何一步步创建并配置这个文件的详细过程。 --- ### 步骤说明 #### 1. 确定 Flume 安装路径 确保你已经安装了 Apache Flume,并知道它的安装目录,例如: ``` /home/user/apache-flume-1.9.0-bin ``` #### 2. 新建或编辑配置文件 你可以使用任何文本编辑器(如 `vim`、`nano` 或 `gedit`)来创建或修改 `flume-conf.properties` 文件: ```bash vim flume-conf.properties ``` 或者: ```bash nano flume-conf.properties ``` --- ### 示例配置内容(采集NetCat输入并写入HDFS) 下面是一个基本示例配置,它从网络端口读取数据(使用 NetCat Source),通过内存缓存(Memory Channel),并将数据写入 HDFS(HDFS Sink): ```properties # 定义Agent的组件名称 agent.sources = r1 agent.channels = c1 agent.sinks = k1 # 配置Source (NetCat) agent.sources.r1.type = netcat agent.sources.r1.bind = 0.0.0.0 agent.sources.r1.port = 44444 # 配置Channel (Memory Channel) agent.channels.c1.type = memory agent.channels.c1.capacity = 1000 agent.channels.c1.transactionCapacity = 100 # 配置Sink (HDFS) agent.sinks.k1.type = hdfs agent.sinks.k1.hdfs.path = hdfs://localhost:9000/user/flume/output/ agent.sinks.k1.hdfs.fileType = DataStream agent.sinks.k1.hdfs.writeFormat = Text # 绑定Source、Channel和Sink agent.sources.r1.channels = c1 agent.sinks.k1.channel = c1 ``` --- ### 参数解释说明: | 组件 | 属性 | 含义 | |------------|--------------------|------| | Source | `type` | 数据源类型,如 `netcat`、`spooling`、`exec` 等 | | | `bind` | 监听的IP地址 | | | `port` | 监听的端口号 | | Channel | `type` | 缓冲区类型,如 `memory` 表示内存缓冲 | | | `capacity` | 缓冲区最大存储事件数量 | | Sink | `type` | 输出目标类型,如 `hdfs` | | | `hdfs.path` | 写入HDFS的路径 | | | `fileType` | 文件格式,如 `DataStream` 表示文本流 | --- ### 3. 启动 Flume 并加载该配置 启动命令如下: ```bash bin/flume-ng agent --conf conf --conf-file flume-conf.properties --name agent -Dflume.root.logger=INFO,console ``` 参数含义: - `--conf`:指定Flume的配置目录(通常为`conf`) - `--conf-file`:指定你的配置文件路径 - `--name`:指定Agent名称,与配置文件中的 `agent.sources`, `agent.sinks` 一致 - `-Dflume.root.logger=INFO,console`:表示日志输出到控制台 --- ### 4. 测试配置是否生效 打开另一个终端,使用 `telnet` 或 `nc` 发送测试数据: ```bash nc localhost 44444 ``` 然后输入一些文本,例如: ``` hello world this is a test message ``` Flume会接收到这些信息,并写入HDFS指定路径中。 --- ## 知识点 - **Flume架构原理**:掌握Flume的Source-Channel-Sink模型,理解数据流动机制。 - **HDFS写入机制**:了解如何配置Flume将数据写入Hadoop分布式文件系统。 - **配置文件语法**:熟悉`.properties`文件的编写方式及关键属性作用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值