在Oozie上的java操作中运行shell命令时抛出的权限被拒绝

在Oozie上的java操作中运行shell命令时抛出的权限被拒绝,java,shell,hadoop,bigdata,oozie,Java,Shell,Hadoop,Bigdata,Oozie,我有这个java代码 public static void main(String... args) throws IOException, InterruptedException { execute("echo \"Amer\""); } private static void execute(String command) throws IOException, InterruptedException { ProcessBuilder builder =

我有这个java代码

public static void main(String... args) throws IOException, InterruptedException {
        execute("echo \"Amer\"");
    }

private static void execute(String command) throws IOException, InterruptedException {
    ProcessBuilder builder = new ProcessBuilder();
    builder.command(command);
    //builder.directory(new File(System.getProperty("user.home")));
    Process process = builder.start();

    StreamGobbler streamGobbler =
            new StreamGobbler(process.getInputStream(), System.out::println);
    Executors.newSingleThreadExecutor().submit(streamGobbler);
    int exitCode = process.waitFor();
    assert exitCode == 0;
}
我正试图通过java操作在Oozie工作流上运行它 但是当我提交工作流时,它会被以下异常终止(java.io.IOException:error=13,权限被拒绝)

org.apache.oozie.action.hadoop.JavaMainException:java.io.IOException: 无法运行程序“echo”Amer“”:错误=13,权限在被拒绝 org.apache.oozie.action.hadoop.JavaMain.run(JavaMain.java:60)位于 org.apache.oozie.action.hadoop.launchemain.run(launchemain.java:78) 位于org.apache.oozie.action.hadoop.JavaMain.main(JavaMain.java:35) sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)位于 invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 位于java.lang.reflect.Method.invoke(Method.java:498) org.apache.oozie.action.hadoop.LauncherMapper.map(LauncherMapper.java:231) 位于org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:54) org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:465)位于 org.apache.hadoop.mapred.MapTask.run(MapTask.java:349)位于 org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:174)位于 java.security.AccessController.doPrivileged(本机方法)位于 javax.security.auth.Subject.doAs(Subject.java:422)位于 org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1688) 在org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:168)上 by:java.io.IOException:无法运行程序“echo”Amer“”:错误=13, 拒绝在 start(ProcessBuilder.java:1048)位于 位于的ShellCommandExecutor.execute(ShellCommandExecutor.java:18) main(ShellCommandExecutor.java:11)位于 sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)位于 invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 位于java.lang.reflect.Method.invoke(Method.java:498) org.apache.oozie.action.hadoop.JavaMain.run(JavaMain.java:57)。。。15 更多原因:java.io.IOException:error=13,权限在被拒绝 位于的java.lang.UNIXProcess.forkAndExec(本机方法) UNIXProcess.java:247) java.lang.ProcessImpl.start(ProcessImpl.java:134)位于 java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)。。。还有22个


任何提示?

builder.command(“sh”和“-c”命令)如果你想运行一个shell命令,而不是一个带有参数数组的程序,那么非常感谢你,它可以工作<代码>生成器命令(“sh”、“-c”,命令)如果你想运行一个shell命令,而不是一个带有参数数组的程序,那么非常感谢你,它可以工作!!