JAVAを介してUNIXコマンドを実行しようとしています。私のシェルコマンドはブタスクリプトを呼び出します。私はこれをUNIX端末で実行するとうまく動作しますが、javaを介して出力が得られませんでした。JAVAとUNIXを使用してPigコマンドを実行する
PFBコードJAVA:
public String executeCommand(String command) {
StringBuffer output = new StringBuffer();
Process p;
try {
System.out.println("process started");
p = Runtime.getRuntime().exec(command);
//p.waitFor();
System.out.println("before reader");
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
//String line = "";
System.out.println("After reader ");
while (reader.readLine() != null) {
System.out.println("inside while loop *******************************");
output.append(reader.readLine() + "\n");
System.out.println(reader.readLine());
}
System.out.println("while loop endedr");
} catch (Exception e) {
e.printStackTrace();
System.out.println("inside exception");
}
return output.toString();
}
pig_command: 時間豚-param indir = "/ホーム/ ********/INDIR /アーカイブ/予約/ 20160620 * /パーツ*」-param OUTDIR = "/ホーム/ *********/OUTDIR/HOURLYBOOKING/20160620/05" -stop_on_failure -x私はどのように
/home/directory/pig/pigscript.pigのMapReduce実行中のJavaプログラム: java -cp /home/directory/java_jar.jar com.Example.Tester pig_command
問題:上記のwhileループのコードはHDFSで正常に生成されていますが、何も印刷されません(ジョブログを出力するはずです)。
おかげで、しかし、これは、既にテストされている、結果はしばらく内のコードと同じですループは実行されません。 –