map reduce プログラムからシステム コマンドを呼び出したいと思います。このコマンドを 1 回だけ実行したいのですが、コマンドが認識されないようです。私のテストコマンドは次のとおりです。
hadoop dfs -mv /user/test/somefile1 /user/test/somefile2
次を使用してコマンドを発行しています。
String envp[] = new String[1];
envp[0] = "Path=" + System.getProperty("java.library.path");
Process p = Runtime.getRuntime().exec("hadoop fs -mv /user/test/somefile1 /user/test/somefile2", envp);
質問が 2 つあります。
このコードを 1 回だけ実行するのに最適な場所はどこですか?
このコマンドを発行している環境で実際にコマンドが実行されないのはなぜですか?
他のコマンドでもこれに気づきました。
hadoop コマンドを発行してもエラーは発生しませんが、移動は行われません。Linuxコマンドラインから同じコマンドを実行すると、うまくいきます。