下面列出了怎么用org.apache.hadoop.fs.shell.Command的API类实例代码及写法,或者点击链接到github查看源代码。
private void displayError(String cmd, String message) {
for (String line : message.split("\n")) {
System.err.println(cmd + ": " + line);
if (cmd.charAt(0) != '-') {
Command instance = null;
instance = commandFactory.getInstance("-" + cmd);
if (instance != null) {
System.err.println("Did you mean -" + cmd + "? This command " +
"begins with a dash.");
}
}
}
}
private void displayError(String cmd, String message) {
for (String line : message.split("\n")) {
System.err.println(cmd + ": " + line);
if (cmd.charAt(0) != '-') {
Command instance = null;
instance = commandFactory.getInstance("-" + cmd);
if (instance != null) {
System.err.println("Did you mean -" + cmd + "? This command " +
"begins with a dash.");
}
}
}
}
String runCommand(String cmdName, String[] arguments) {
final Configuration conf = contextCommands.getConfiguration();
cmdName = "-" + cmdName;
final Command command = getCommandInstance(cmdName, conf);
if (command == null) {
return "Unknown command " + cmdName;
}
if (arguments.length == 0 && !NO_PARAMS_COMMANDS.contains(cmdName)) {
return command.getDescription();
}
contextCommands.updateCurrentWorkingDirectory();
arguments = replaceHdfsPath(arguments);
final PrintStream printStream = ClientConnection.context.get();
if (printStream != null) {
command.err = printStream;
command.out = printStream;
}
// final ByteArrayOutputStream out = new ByteArrayOutputStream();
// final PrintStream printStream = new PrintStream(out);
// command.err = printStream;
// command.out = printStream;
final int result = command.run(arguments);
if (contextCommands.isShowResultCode()) {
if (result == 0) {
command.out.println("Exit code = " + result);
} else {
command.err.println("Exit code = " + result);
}
}
//printStream.close();
if (result != 0 && contextCommands.isFailOnError()) {
throw new RuntimeException("HDFS Command finished with result code " + result);
}
return "";
}
private static Command getCommandInstance(String cmdName, Configuration conf) {
final CommandFactory commandFactory = new CommandFactory(conf);
FsCommand.registerCommands(commandFactory);
return commandFactory.getInstance(cmdName, conf);
}
private void printInstanceUsage(PrintStream out, Command instance) {
out.println(usagePrefix + " " + instance.getUsage());
}
private void printInstanceUsage(PrintStream out, Command instance) {
out.println(usagePrefix + " " + instance.getUsage());
}