org.apache.hadoop.fs.FileUtil#makeShellPath ( )源码实例Demo

下面列出了org.apache.hadoop.fs.FileUtil#makeShellPath ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: RDFS   文件: TaskLog.java
/**
 * Wrap a command in a shell to capture debug script's 
 * stdout and stderr to debugout.
 * @param cmd The command and the arguments that should be run
 * @param debugoutFilename The filename that stdout and stderr
 *  should be saved to.
 * @return the modified command that should be run
 * @throws IOException
 */
public static List<String> captureDebugOut(List<String> cmd, 
                                           File debugoutFilename
                                          ) throws IOException {
  String debugout = FileUtil.makeShellPath(debugoutFilename);
  List<String> result = new ArrayList<String>(3);
  result.add(bashCommand);
  result.add("-c");
  StringBuffer mergedCmd = new StringBuffer();
  mergedCmd.append("exec ");
  boolean isExecutable = true;
  for(String s: cmd) {
    if (isExecutable) {
      // the executable name needs to be expressed as a shell path for the  
      // shell to find it.
      mergedCmd.append(FileUtil.makeShellPath(new File(s)));
      isExecutable = false; 
    } else {
      mergedCmd.append(s);
    }
    mergedCmd.append(" ");
  }
  mergedCmd.append(" < /dev/null ");
  mergedCmd.append(" >");
  mergedCmd.append(debugout);
  mergedCmd.append(" 2>&1 ");
  result.add(mergedCmd.toString());
  return result;
}
 
源代码2 项目: hadoop-gpu   文件: TaskLog.java
/**
 * Wrap a command in a shell to capture debug script's 
 * stdout and stderr to debugout.
 * @param cmd The command and the arguments that should be run
 * @param debugoutFilename The filename that stdout and stderr
 *  should be saved to.
 * @return the modified command that should be run
 * @throws IOException
 */
public static List<String> captureDebugOut(List<String> cmd, 
                                           File debugoutFilename
                                          ) throws IOException {
  String debugout = FileUtil.makeShellPath(debugoutFilename);
  List<String> result = new ArrayList<String>(3);
  result.add(bashCommand);
  result.add("-c");
  StringBuffer mergedCmd = new StringBuffer();
  mergedCmd.append("exec ");
  boolean isExecutable = true;
  for(String s: cmd) {
    if (isExecutable) {
      // the executable name needs to be expressed as a shell path for the  
      // shell to find it.
      mergedCmd.append(FileUtil.makeShellPath(new File(s)));
      isExecutable = false; 
    } else {
      mergedCmd.append(s);
    }
    mergedCmd.append(" ");
  }
  mergedCmd.append(" < /dev/null ");
  mergedCmd.append(" >");
  mergedCmd.append(debugout);
  mergedCmd.append(" 2>&1 ");
  result.add(mergedCmd.toString());
  return result;
}
 
源代码3 项目: hadoop   文件: TaskLog.java
/**
 * Construct the command line for running the task JVM
 * @param setup The setup commands for the execed process.
 * @param cmd The command and the arguments that should be run
 * @param stdoutFilename The filename that stdout should be saved to
 * @param stderrFilename The filename that stderr should be saved to
 * @param tailLength The length of the tail to be saved.
 * @return the command line as a String
 * @throws IOException
 */
static String buildCommandLine(List<String> setup, List<String> cmd, 
                                    File stdoutFilename,
                                    File stderrFilename,
                                    long tailLength, 
                                    boolean useSetsid)
                              throws IOException {
  
  String stdout = FileUtil.makeShellPath(stdoutFilename);
  String stderr = FileUtil.makeShellPath(stderrFilename);    
  StringBuffer mergedCmd = new StringBuffer();
  
  // Export the pid of taskJvm to env variable JVM_PID.
  // Currently pid is not used on Windows
  if (!Shell.WINDOWS) {
    mergedCmd.append(" export JVM_PID=`echo $$` ; ");
  }

  if (setup != null && setup.size() > 0) {
    mergedCmd.append(addCommand(setup, false));
    mergedCmd.append(";");
  }
  if (tailLength > 0) {
    mergedCmd.append("(");
  } else if(ProcessTree.isSetsidAvailable && useSetsid &&
      !Shell.WINDOWS) {
    mergedCmd.append("exec setsid ");
  } else {
    mergedCmd.append("exec ");
  }
  mergedCmd.append(addCommand(cmd, true));
  mergedCmd.append(" < /dev/null ");
  if (tailLength > 0) {
    mergedCmd.append(" | ");
    mergedCmd.append(tailCommand);
    mergedCmd.append(" -c ");
    mergedCmd.append(tailLength);
    mergedCmd.append(" >> ");
    mergedCmd.append(stdout);
    mergedCmd.append(" ; exit $PIPESTATUS ) 2>&1 | ");
    mergedCmd.append(tailCommand);
    mergedCmd.append(" -c ");
    mergedCmd.append(tailLength);
    mergedCmd.append(" >> ");
    mergedCmd.append(stderr);
    mergedCmd.append(" ; exit $PIPESTATUS");
  } else {
    mergedCmd.append(" 1>> ");
    mergedCmd.append(stdout);
    mergedCmd.append(" 2>> ");
    mergedCmd.append(stderr);
  }
  return mergedCmd.toString();
}
 
源代码4 项目: big-c   文件: TaskLog.java
/**
 * Construct the command line for running the task JVM
 * @param setup The setup commands for the execed process.
 * @param cmd The command and the arguments that should be run
 * @param stdoutFilename The filename that stdout should be saved to
 * @param stderrFilename The filename that stderr should be saved to
 * @param tailLength The length of the tail to be saved.
 * @return the command line as a String
 * @throws IOException
 */
static String buildCommandLine(List<String> setup, List<String> cmd, 
                                    File stdoutFilename,
                                    File stderrFilename,
                                    long tailLength, 
                                    boolean useSetsid)
                              throws IOException {
  
  String stdout = FileUtil.makeShellPath(stdoutFilename);
  String stderr = FileUtil.makeShellPath(stderrFilename);    
  StringBuffer mergedCmd = new StringBuffer();
  
  // Export the pid of taskJvm to env variable JVM_PID.
  // Currently pid is not used on Windows
  if (!Shell.WINDOWS) {
    mergedCmd.append(" export JVM_PID=`echo $$` ; ");
  }

  if (setup != null && setup.size() > 0) {
    mergedCmd.append(addCommand(setup, false));
    mergedCmd.append(";");
  }
  if (tailLength > 0) {
    mergedCmd.append("(");
  } else if(ProcessTree.isSetsidAvailable && useSetsid &&
      !Shell.WINDOWS) {
    mergedCmd.append("exec setsid ");
  } else {
    mergedCmd.append("exec ");
  }
  mergedCmd.append(addCommand(cmd, true));
  mergedCmd.append(" < /dev/null ");
  if (tailLength > 0) {
    mergedCmd.append(" | ");
    mergedCmd.append(tailCommand);
    mergedCmd.append(" -c ");
    mergedCmd.append(tailLength);
    mergedCmd.append(" >> ");
    mergedCmd.append(stdout);
    mergedCmd.append(" ; exit $PIPESTATUS ) 2>&1 | ");
    mergedCmd.append(tailCommand);
    mergedCmd.append(" -c ");
    mergedCmd.append(tailLength);
    mergedCmd.append(" >> ");
    mergedCmd.append(stderr);
    mergedCmd.append(" ; exit $PIPESTATUS");
  } else {
    mergedCmd.append(" 1>> ");
    mergedCmd.append(stdout);
    mergedCmd.append(" 2>> ");
    mergedCmd.append(stderr);
  }
  return mergedCmd.toString();
}
 
源代码5 项目: RDFS   文件: TaskLog.java
static String buildCommandLine(List<String> setup,
    List<String> cmd, 
    File stdoutFilename,
    File stderrFilename,
    long tailLength,
    boolean useSetSid) throws IOException {
  
  String stdout = FileUtil.makeShellPath(stdoutFilename);
  String stderr = FileUtil.makeShellPath(stderrFilename);
  StringBuffer mergedCmd = new StringBuffer();
  
  if (!Shell.WINDOWS) {
    mergedCmd.append(" export JVM_PID=`echo $$` ; ");
  }

  if (setup != null && setup.size() > 0) {
    mergedCmd.append(addCommand(setup, false));
    mergedCmd.append(";");
  }
  if (tailLength > 0) {
    mergedCmd.append("(");
  } else if (ProcessTree.isSetsidAvailable && useSetSid 
      && !Shell.WINDOWS) {
    mergedCmd.append("exec setsid ");
  } else {
    mergedCmd.append("exec ");
  }
  mergedCmd.append(addCommand(cmd, true));
  mergedCmd.append(" < /dev/null ");
  if (tailLength > 0) {
    mergedCmd.append(" | ");
    mergedCmd.append(tailCommand);
    mergedCmd.append(" -c ");
    mergedCmd.append(tailLength);
    mergedCmd.append(" >> ");
    mergedCmd.append(stdout);
    mergedCmd.append(" ; exit $PIPESTATUS ) 2>&1 | ");
    mergedCmd.append(tailCommand);
    mergedCmd.append(" -c ");
    mergedCmd.append(tailLength);
    mergedCmd.append(" >> ");
    mergedCmd.append(stderr);
    mergedCmd.append(" ; exit $PIPESTATUS");
  } else {
    mergedCmd.append(" 1>> ");
    mergedCmd.append(stdout);
    mergedCmd.append(" 2>> ");
    mergedCmd.append(stderr);
  }
  return mergedCmd.toString();
}
 
源代码6 项目: hadoop-gpu   文件: TaskLog.java
/**
 * Wrap a command in a shell to capture stdout and stderr to files.
 * Setup commands such as setting memory limit can be passed which 
 * will be executed before exec.
 * If the tailLength is 0, the entire output will be saved.
 * @param setup The setup commands for the execed process.
 * @param cmd The command and the arguments that should be run
 * @param stdoutFilename The filename that stdout should be saved to
 * @param stderrFilename The filename that stderr should be saved to
 * @param tailLength The length of the tail to be saved.
 * @param pidFileName The name of the pid-file
 * @return the modified command that should be run
 */
public static List<String> captureOutAndError(List<String> setup,
                                              List<String> cmd, 
                                              File stdoutFilename,
                                              File stderrFilename,
                                              long tailLength,
                                              String pidFileName
                                             ) throws IOException {
  String stdout = FileUtil.makeShellPath(stdoutFilename);
  String stderr = FileUtil.makeShellPath(stderrFilename);
  List<String> result = new ArrayList<String>(3);
  result.add(bashCommand);
  result.add("-c");
  StringBuffer mergedCmd = new StringBuffer();
  
  // Spit out the pid to pidFileName
  if (pidFileName != null) {
    mergedCmd.append("echo $$ > ");
    mergedCmd.append(pidFileName);
    mergedCmd.append(" ;");
  }

  if (setup != null && setup.size() > 0) {
    mergedCmd.append(addCommand(setup, false));
    mergedCmd.append(";");
  }
  if (tailLength > 0) {
    mergedCmd.append("(");
  } else {
    mergedCmd.append("exec ");
  }
  mergedCmd.append(addCommand(cmd, true));
  mergedCmd.append(" < /dev/null ");
  if (tailLength > 0) {
    mergedCmd.append(" | ");
    mergedCmd.append(tailCommand);
    mergedCmd.append(" -c ");
    mergedCmd.append(tailLength);
    mergedCmd.append(" >> ");
    mergedCmd.append(stdout);
    mergedCmd.append(" ; exit $PIPESTATUS ) 2>&1 | ");
    mergedCmd.append(tailCommand);
    mergedCmd.append(" -c ");
    mergedCmd.append(tailLength);
    mergedCmd.append(" >> ");
    mergedCmd.append(stderr);
    mergedCmd.append(" ; exit $PIPESTATUS");
  } else {
    mergedCmd.append(" 1>> ");
    mergedCmd.append(stdout);
    mergedCmd.append(" 2>> ");
    mergedCmd.append(stderr);
  }
  result.add(mergedCmd.toString());
  return result;
}
 
源代码7 项目: RDFS   文件: TaskLog.java
/**
 * Get the real task-log file-path
 * 
 * @param location Location of the log-file. This should point to an
 *          attempt-directory.
 * @param filter
 * @return
 * @throws IOException
 */
static String getRealTaskLogFilePath(String location, LogName filter)
    throws IOException {
  return FileUtil.makeShellPath(new File(getBaseDir(location),
      filter.toString()));
}