我想从我的 map reduce 程序中调用一个系统命令。我希望这个命令只运行一次,但似乎该命令无法识别。我的测试命令是:
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);
我有两个问题,
放置此代码以便它只执行一次的最佳位置在哪里?
为什么我发出此命令的环境实际上并未运行该命令?
我在其他命令中也注意到了这一点。
当我发出 hadoop 命令时,我没有收到错误,但没有发生移动。如果我从 linux 命令行运行相同的命令,它确实有效。