如何使用java程序执行flume配置文件?

时间:2014-04-22 06:23:44

标签: java flume

我有一个水槽配置文件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);
}

我没有收到任何错误。

1 个答案:

答案 0 :(得分:1)

Flume提供了一个Application类,用于使用Java程序运行conf文件。请找到以下程序。

$this->TplKeyAdd("var", $qf["user_name"]);

在Application类中,您需要提供代理,agentname和flume.conf文件路径。在我的情况下,flume.conf文件只在我的项目类路径中,所以我刚刚指定为-fflume.conf。如果它位于不同的目录中,则需要在那里指定完整路径。在此之后,您可以将其作为普通的Java程序运行。