Flume 構成ファイルを作成し、それらを Linux ボックスのディスクに書き込む Java アプリケーションを作成しました。次に、アプリケーションはflumeコマンドを構築し、次のコードでコマンドを実行してflumeエージェントを起動しようとします:
try {
Process p = Runtime.getRuntime().exec(flumeStartCommand.toString());
p.waitFor();
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = null;
while ((line = in.readLine()) != null) {
System.out.println(line);
}
Flume コマンドをターミナルから手動で実行すると、問題なく動作します。Java アプリケーションが Flume コマンドを実行しようとしても、何も起こりません。これはクラスパスの問題ですか?
ここでの Flume コマンド: /root/flume-flume-1.6/flume-ng-dist/target/apache-flume-1.6.0-SNAPSHOT-bin/apache-flume-1.6.0-SNAPSHOT-bin/bin/flume-ngエージェント --conf conf --conf-file /root/flumeconfs/ConsumerGroup4.conf --name Agent_ConsumerGroup4 -Dflume.root.logger=INFO,console -Dflume.monitoring.type=http -Dflume.monitoring.port=34548
組み込みエージェントが別のオプションであることは知っていますが、これらは avro シンクでのみ使用できるため、あまり役に立ちません。どんな考えでも感謝します。乾杯、コールマン