gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 06:51:53 24 4
gpt4 key购买 nike

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

我没有收到任何错误。

最佳答案

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

import org.apache.flume.node.Application;
import org.apache.log4j.BasicConfigurator;

public class flume {
public static void main(String[] args)
{
String[] args1 = new String[] { "agent","-nTwitterAgent","-fflume.conf" };
BasicConfigurator.configure();
Application.main(args1);
System.setProperty("hadoop.home.dir", "/");
}
}

在应用程序类中,您需要提供代理、代理名称和flume.conf 文件路径。在我的例子中,flume.conf 文件仅位于我的项目类路径中,因此我刚刚指定为 -fflume.conf。如果它位于不同的目录中,您需要在那里指定完整路径。之后你就可以像普通的java程序一样运行它了。

关于java - 如何使用java程序执行flume配置文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23211927/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com