我是第一次安装Flume。我正在使用hadoop-1.2.1和flume 1.6.0
我尝试按照this guide设置水槽代理。
我执行了此命令:$ bin/flume-ng agent -n $agent_name -c conf -f conf/flume-conf.properties.template
它说log4j:ERROR setFile(null,true) call failed.
java.io.FileNotFoundException: ./logs/flume.log (No such file or directory)
flume.log
文件不是自动生成的吗?如果没有,我该如何纠正此错误?
尝试一下:
mkdir ./logs
sudo chown `whoami` ./logs
bin/flume-ng agent -n $agent_name -c conf -f conf/flume-conf.properties.template
第一行在当前目录中创建logs
目录(如果尚不存在)。第二个命令将该目录的所有者设置为当前用户(您),以便以您的用户身份运行的flume-ng
可以对其进行写入。
最后,请注意,这不是运行Flume的推荐方法,只是快速尝试一下。
您可能会收到此错误,可能是因为您是直接在控制台上运行命令,您必须首先进入排屑槽,然后尝试在控制台上运行命令。
<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9YTnBBOS5wbmcifQ==” alt =“这是供您参考的图像”>
正如@Botond所说,您需要设置正确的权限。
但是,如果您在某个程序中运行Flume,例如超级用户或使用自定义脚本,则可能要更改默认路径,因为它是相对于启动器的。此路径是在您的/ path / to / apache-flume-1.6.0-bin / conf / log4j.properties中定义的。在那里您可以更改线
flume.log.dir=./logs
使用您要使用的绝对路径-不过,您仍然需要正确的权限。