Ich versuche Shell-Skript in einem Bucket mit Datenfluss-Job platziert auszuführen.Ausführen von Shell-Skript mit Google Cloud-Datenfluss-Job
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);
}
Hinweis:: Ich kann gsutil Befehle mit diesem Job mit Direct Runner ausführen ich Datenfluß Läufer verwendet das Skript auszuführen, weil ich Windows-Rechner verwenden.
Versuchen Sie, dies innerhalb eines ParDo auszuführen? Scheitert das? Wenn ja, welchen Fehler sehen Sie? Wie sieht Ihre Pipeline aus? – Pablo
Wenn ich schreibe String command = "bash shellDataflow.sh"; Prozess p = Runtime.getRuntime(). Exec (Befehl) ;. Ich erhalte eine Fehlermeldung als "Ausnahme aufgetreten ist Kann Programm nicht ausführen" bash ": CreateProcess error = 2, Das System kann die angegebene Datei nicht finden". Der Fehler ist so, weil das obige Programm die Befehlszeileninstanz meines Windows-Systems aufruft. Gibt es eine Möglichkeit, eine Verbindung zur Cloud-Konsolenumgebung über Java-Code herzustellen, so dass ich meine Shell in dieser Umgebung mit meinem Datenfluss-Job ausführen kann. – Aditi