1
我有一個簡單的shell腳本,看起來像這樣:shell腳本不是從Java代碼運行R(Rhipe)計劃
R --vanilla<myMRjob.R
hadoop fs -get /output_03/ /home/user/Desktop/hdfs_output/
這個shell腳本運行myMRjob.R,並獲取輸出HDFS本地文件系統。它從終端執行得很好。
當我試圖從Java代碼運行shell腳本,我無法推出,即是沒有得到執行第一線的MapReduce工作。雖然「hadoop fs -get ..」這一行通過Java代碼運行良好。我用它
Java代碼是:
import java.io.*;
public class Dtry {
public static void main(String[] args) {
File wd = new File("/home/dipesh/");
System.out.println("Working Directory: " +wd);
Process proc = null;
try {
proc = Runtime.getRuntime().exec("./Recomm.sh", null, wd);
} catch (Exception e) {
e.printStackTrace();
}
}
}
這整個活動背後的原因是,我想觸發並顯示在JSP的myMRjob.R的結果。
請幫忙!
什麼錯誤你好嗎? – havexz 2012-02-19 07:54:57
我沒有收到任何錯誤。 myMRjob.R沒有得到執行。在返回後我會在下一個瞬間看到終端提示。這項工作需要一段時間才能運行,並寫入到hdfs的o/p。我還檢查了在hdfs中沒有創建o/p目錄。 – dipeshtech 2012-02-19 08:04:27
@dipeshtech:使用proc.getErrorStream()將錯誤獲取到輸入流中。打印它的控制檯....應該有錯誤總和 – 2012-02-19 08:07:46