Hadoop 启动Flume代理时未找到文件异常

Hadoop 启动Flume代理时未找到文件异常,hadoop,filenotfoundexception,flume,flume-ng,Hadoop,Filenotfoundexception,Flume,Flume Ng,我第一次安装了水槽。我正在使用hadoop-1.2.1和flume 1.6.0 我尝试通过以下方式设置flume代理 我执行了这个命令:$bin/flume ng agent-n$agent\u name-c conf-f conf/flume-conf.properties.template 它说log4j:ERROR setFile(null,true)调用失败。 java.io.FileNotFoundException:./logs/flume.log(没有这样的文件或目录) flume

我第一次安装了水槽。我正在使用hadoop-1.2.1和flume 1.6.0

我尝试通过以下方式设置flume代理

我执行了这个命令:
$bin/flume ng agent-n$agent\u name-c conf-f conf/flume-conf.properties.template

它说
log4j:ERROR setFile(null,true)调用失败。
java.io.FileNotFoundException:./logs/flume.log(没有这样的文件或目录)

flume.log文件不是自动生成的吗?如果没有,如何更正此错误?

请尝试以下操作:

mkdir ./logs
sudo chown `whoami` ./logs
bin/flume-ng agent -n $agent_name -c conf -f conf/flume-conf.properties.template
第一行在当前目录中创建
日志
目录(如果它不存在)。第二个设置将该目录的所有者设置为当前用户(您),以便
flume ng
以用户写入的方式运行


最后,请注意,这不是运行Flume的推荐方法,只是一个快速尝试。

正如@Botond所说,您需要设置正确的权限

但是,如果您在程序中运行Flume,如supervisor或使用自定义脚本,则可能需要更改默认路径,因为它是相对于启动器的。 此路径在/path/to/apache-flume-1.6.0-bin/conf/log4j.properties中定义。你可以在那里换线

flume.log.dir=./logs

要使用您想要使用的绝对路径,您仍然需要正确的权限。

您遇到此错误可能是因为您直接在控制台上运行命令,您必须首先转到flume中的bin,然后尝试在控制台上运行您的命令


检查目录上的权限。如果需要,创建一个空的flume.log文件。我在何处创建该日志文件?在执行脚本的目录中