在flume/conf目录下创建flume-hdfs.conf文件,并对其进行基础测试配置
时间: 2023-12-16 14:03:29 浏览: 89
flume-flume-hdfs.conf
好的,首先需要在flume/conf目录下创建一个名为flume-hdfs.conf的文件,然后将以下配置复制到文件中:
```
# Name the components on this agent
agent.sources = source1
agent.sinks = sink1
agent.channels = channel1
# Describe/configure the source
agent.sources.source1.type = exec
agent.sources.source1.command = tail -F /var/log/messages
# Describe the sink
agent.sinks.sink1.type = hdfs
agent.sinks.sink1.hdfs.path = /flume/data/%Y-%m-%d/%H
agent.sinks.sink1.hdfs.fileType = DataStream
agent.sinks.sink1.hdfs.writeFormat = Text
agent.sinks.sink1.hdfs.rollInterval = 0
agent.sinks.sink1.hdfs.rollSize = 134217728
agent.sinks.sink1.hdfs.rollCount = 0
agent.sinks.sink1.hdfs.batchSize = 1000
# Use a channel which buffers events in memory
agent.channels.channel1.type = memory
agent.channels.channel1.capacity = 10000
agent.channels.channel1.transactionCapacity = 1000
# Bind the source and sink to the channel
agent.sources.source1.channels = channel1
agent.sinks.sink1.channel = channel1
```
这个配置会启动一个agent,监控/var/log/messages文件,并将日志数据写入到HDFS中。其中,%Y-%m-%d/%H是一个时间戳,表示数据按照日期和小时进行分区存储。具体来说,数据将会被存储到/flume/data/2021-08-12/10这个目录下。
接下来,我们需要启动Flume agent并进行测试。打开终端,切换到flume目录下,然后运行以下命令:
```
bin/flume-ng agent --conf ./conf/ --conf-file ./conf/flume-hdfs.conf --name agent1 -Dflume.root.logger=INFO,console
```
这个命令会启动一个名为agent1的Flume agent,并且会将日志输出到控制台。
接下来,我们可以在/var/log/messages文件中添加一些新的日志数据,然后观察HDFS中是否成功写入了数据。我们可以使用以下命令来检查:
```
hadoop fs -ls /flume/data/2021-08-12/10
```
如果输出类似于以下内容,则表示数据已经成功写入到了HDFS中:
```
-rw-r--r-- 3 hduser supergroup 384 2021-08-12 10:19 /flume/data/2021-08-12/10/FlumeData.1628746760578
```
阅读全文