我是新手,所以请告诉我......如何使用水槽将日志文件从本地计算机存储到本地我的HDFS 我在设置classpath和flume.conf文件时遇到了问题
谢谢你, ajay
答案 0 :(得分:0)
我们确实需要更多信息来了解事情对您有用的原因。
简短的回答是,您需要一个Source来读取您的数据(可能是假脱机目录源),一个Channel(内存通道,如果您不需要可靠的存储空间)和HDFS接收器。
更新
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
脚本在运行Flume之前将--conf-file
参数的内容添加到类路径中。
答案 1 :(得分:0)
如果要将数据附加到本地文件,则可以使用带有“tail -F”命令的exec源。如果文件是静态的,请使用cat命令将数据传输到hadoop。
整体架构将是:
来源:Exec源读取文件中的数据
频道:内存频道或文件频道
接收器:Hdfs接收数据被转储的地方。
使用用户指南创建配置文件(https://flume.apache.org/FlumeUserGuide.html)
准备好conf文件后,可以像这样运行:
bin/flume-ng agent -n $agent_name -c conf -f conf/your-flume-conf.conf
答案 2 :(得分:0)
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 &