我有一个水槽配置文件filename.conf
,当我在终端中执行此文件时效果很好。但我正在尝试使用Runtime.getRuntime().exec
函数在java程序中执行相同的文件,它不起作用。
这是我的flume
执行命令:
/home/path/flume/bin/flume-ng agent --conf-file /home/path/flume/filename.conf --name Agent -Dflume.root.logger=INFO,console
这是我的java代码:
Process p;
p = Runtime.getRuntime().exec("/home/path/flume/bin/flume-ng agent --conf-file /home/path/flume/filename.conf --name TwitterAgent -Dflume.root.logger=INFO,console");
p.waitFor();
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = "";
while ((line = reader.readLine())!= null)
{
System.out.println(line);
}
我没有收到任何错误。
答案 0 :(得分:1)
Flume提供了一个Application类,用于使用Java程序运行conf文件。请找到以下程序。
$this->TplKeyAdd("var", $qf["user_name"]);
在Application类中,您需要提供代理,agentname和flume.conf文件路径。在我的情况下,flume.conf文件只在我的项目类路径中,所以我刚刚指定为-fflume.conf。如果它位于不同的目录中,则需要在那里指定完整路径。在此之后,您可以将其作为普通的Java程序运行。