public YarnExecutor(YarnExecutorConfig config, List<String> arguments, Map<String, String> additionalEnvironment) { final String yarn = config.getYarnPath().getAbsolutePath(); List<String> localPaths = new ArrayList<>(); localPaths.add(config.getYarnPath().getParent()); localPaths.add(config.getNodePath().getParent()); executor = new ProcessExecutor(config.getWorkingDirectory(), localPaths, Utils.prepend(yarn, arguments), config.getPlatform(), additionalEnvironment); }
public NodeExecutor(NodeExecutorConfig config, List<String> arguments, Map<String, String> additionalEnvironment){ final String node = config.getNodePath().getAbsolutePath(); List<String> localPaths = new ArrayList<String>(); localPaths.add(config.getNodePath().getParent()); this.executor = new ProcessExecutor( config.getWorkingDirectory(), localPaths, Utils.prepend(node, arguments), config.getPlatform(), additionalEnvironment); }
public final void execute(String args, Map<String, String> environment) throws TaskRunnerException { final String absoluteTaskLocation = getAbsoluteTaskLocation(); final List<String> arguments = getArguments(args); logger.info("Running " + taskToString(taskName, arguments) + " in " + config.getWorkingDirectory()); try { final int result = new NodeExecutor(config, prepend(absoluteTaskLocation, arguments), environment).executeAndRedirectOutput(logger); if (result != 0) { throw new TaskRunnerException(taskToString(taskName, arguments) + " failed. (error code " + result + ")"); } } catch (ProcessExecutionException e) { throw new TaskRunnerException(taskToString(taskName, arguments) + " failed.", e); } }