2017-08-16 83 views
0

我試圖使用數據流作業執行放置在存儲桶中的shell腳本。我可以執行使用使用直接亞軍這項工作gsutil指令:使用谷歌雲數據流執行shell腳本作業

String[] cmdline = { "cmd.exe", "/c", "gsutil ls gs://Bucketname" }; 
Process p = Runtime.getRuntime().exec(cmdline); 
BufferedReader reader = new BufferedReader(new 
InputStreamReader(p.getInputStream())); 
      String line = null; 
      while ((line = reader.readLine()) != null) 
      { 
       System.out.println(line); 
      } 

注:我會用數據流選手,因爲我使用Windows的機器來執行腳本。

+0

您是否試圖在ParDo中運行此操作?這是否失敗?如果是這樣,你看到什麼錯誤?你的管道是什麼樣的? – Pablo

+0

如果我寫入String command =「bash shellDataflow.sh」;進程p = Runtime.getRuntime()。exec(command);.我得到錯誤信息爲「發生錯誤無法運行程序」bash「:CreateProcess錯誤= 2,系統找不到指定的文件」。錯誤是這樣的,因爲上面的程序正在調用我的Windows系統的命令行實例。有沒有辦法通過java代碼連接到雲端控制檯環境,這樣我就可以使用我的數據流作業在該環境中運行我的shell。 – Aditi

回答

1

請嘗試使用此功能。它運行在我的情況。您必須將代碼部署在雲中作爲.jar或maven項目。路徑/home/*/test.sh位於雲控制檯中。

String[] cmd = {"sh", "/home/akash/test.sh", "/home/akash/"}; 
     Runtime.getRuntime().exec(cmd);