我是flume的新手,所以请告诉我......如何使用flume将日志文件从我的本地机器存储到本地我的HDFS我在设置类路径和flume.conf文件时遇到问题
谢谢你,阿杰
agent.sources = weblog
agent.channels = memoryChannel
agent.sinks = mycluster
## Sources #########################################################
agent.sources.weblog.type = exec
agent.sources.weblog.command = tail -F REPLACE-WITH-PATH2-your.log-FILE
agent.sources.weblog.batchSize = 1
agent.sources.weblog.channels =
REPLACE-WITH-
CHANNEL-NAME
## Channels ########################################################
agent.channels.memoryChannel.type = memory
agent.channels.memoryChannel.capacity = 100 agent.channels.memoryChannel.transactionCapacity = 100
## Sinks ###########################################################
agent.sinks.mycluster.type =REPLACE-WITH-CLUSTER-TYPE
agent.sinks.mycluster.hdfs.path=/user/root/flumedata
agent.sinks.mycluster.channel =REPLACE-WITH-CHANNEL-NAME
将此文件保存为 logagent.conf 并使用以下命令运行
# flume-ng agent –n agent –f logagent.conf &
我们确实需要更多信息来了解为什么事情对您有用。
简短的回答是,您需要一个 Source 来从(可能是假脱机目录源)、一个 Channel(如果您不需要可靠存储,则为内存通道)和 HDFS sink 读取您的数据。
更新
OP 报告收到错误消息,“您必须在水槽类路径中包含 conf 文件”。
您需要提供 conf 文件作为参数。您可以使用--conf-file
参数执行此操作。比如我在开发中使用的命令行是:
bin/flume-ng agent --conf-file /etc/flume-ng/conf/flume.conf --name castellan-indexer --conf /etc/flume-ng/conf
错误消息是这样读取的,因为bin/flume-ng
脚本--conf-file
在运行 Flume 之前将参数的内容添加到类路径中。
如果要将数据附加到本地文件,则可以使用带有“tail -F”命令的 exec 源。如果文件是静态的,使用 cat 命令将数据传输到 hadoop。
整体架构将是:
来源:执行源从您的文件中读取数据
通道:内存通道或文件通道
接收器:转储数据的 HDFS 接收器。
使用用户指南创建您的 conf 文件 ( https://flume.apache.org/FlumeUserGuide.html )
准备好 conf 文件后,您可以像这样运行它:
bin/flume-ng agent -n $agent_name -c conf -f conf/your-flume-conf.conf