1

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

我尝试按照本指南设置水槽代理。

我执行了这个命令:$ 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自动生成的吗?如果没有,我该如何纠正这个错误?

4

3 回答 3

2

尝试这个:

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 的推荐方式,只是快速尝试一下。

于 2015-06-05T18:24:42.673 回答
1

您收到此错误可能是因为您直接在控制台上运行命令,您必须首先进入水槽中的 bin 并尝试在控制台上运行您的命令。

这是供您参考的图像

于 2020-01-27T20:40:28.670 回答
0

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

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

flume.log.dir=./logs

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

于 2016-02-12T09:57:27.317 回答