Search in sources :

Example 16 with CommandLine

use of org.apache.commons.cli.CommandLine in project hadoop by apache.

the class HadoopArchiveLogsRunner method handleOpts.

private void handleOpts(String[] args) throws ParseException {
    Options opts = new Options();
    Option appIdOpt = new Option(APP_ID_OPTION, true, "Application ID");
    appIdOpt.setRequired(true);
    Option userOpt = new Option(USER_OPTION, true, "User");
    userOpt.setRequired(true);
    Option workingDirOpt = new Option(WORKING_DIR_OPTION, true, "Working Directory");
    workingDirOpt.setRequired(true);
    Option remoteLogDirOpt = new Option(REMOTE_ROOT_LOG_DIR_OPTION, true, "Remote Root Log Directory");
    remoteLogDirOpt.setRequired(true);
    Option suffixOpt = new Option(SUFFIX_OPTION, true, "Suffix");
    suffixOpt.setRequired(true);
    Option useProxyOpt = new Option(NO_PROXY_OPTION, false, "Use Proxy");
    opts.addOption(appIdOpt);
    opts.addOption(userOpt);
    opts.addOption(workingDirOpt);
    opts.addOption(remoteLogDirOpt);
    opts.addOption(suffixOpt);
    opts.addOption(useProxyOpt);
    CommandLineParser parser = new GnuParser();
    CommandLine commandLine = parser.parse(opts, args);
    appId = commandLine.getOptionValue(APP_ID_OPTION);
    user = commandLine.getOptionValue(USER_OPTION);
    workingDir = commandLine.getOptionValue(WORKING_DIR_OPTION);
    remoteLogDir = commandLine.getOptionValue(REMOTE_ROOT_LOG_DIR_OPTION);
    suffix = commandLine.getOptionValue(SUFFIX_OPTION);
    proxy = true;
    if (commandLine.hasOption(NO_PROXY_OPTION)) {
        proxy = false;
    }
}
Also used : Options(org.apache.commons.cli.Options) CommandLine(org.apache.commons.cli.CommandLine) GnuParser(org.apache.commons.cli.GnuParser) Option(org.apache.commons.cli.Option) CommandLineParser(org.apache.commons.cli.CommandLineParser)

Example 17 with CommandLine

use of org.apache.commons.cli.CommandLine in project hadoop by apache.

the class OptionsParser method parse.

/**
   * The parse method parses the command-line options, and creates
   * a corresponding Options object.
   * @param args Command-line arguments (excluding the options consumed
   *              by the GenericOptionsParser).
   * @return The Options object, corresponding to the specified command-line.
   * @throws IllegalArgumentException Thrown if the parse fails.
   */
public static DistCpOptions parse(String[] args) throws IllegalArgumentException {
    CommandLineParser parser = new CustomParser();
    CommandLine command;
    try {
        command = parser.parse(cliOptions, args, true);
    } catch (ParseException e) {
        throw new IllegalArgumentException("Unable to parse arguments. " + Arrays.toString(args), e);
    }
    DistCpOptions option = parseSourceAndTargetPaths(command);
    option.setIgnoreFailures(command.hasOption(DistCpOptionSwitch.IGNORE_FAILURES.getSwitch()));
    option.setAtomicCommit(command.hasOption(DistCpOptionSwitch.ATOMIC_COMMIT.getSwitch()));
    option.setSyncFolder(command.hasOption(DistCpOptionSwitch.SYNC_FOLDERS.getSwitch()));
    option.setOverwrite(command.hasOption(DistCpOptionSwitch.OVERWRITE.getSwitch()));
    option.setAppend(command.hasOption(DistCpOptionSwitch.APPEND.getSwitch()));
    option.setDeleteMissing(command.hasOption(DistCpOptionSwitch.DELETE_MISSING.getSwitch()));
    option.setSkipCRC(command.hasOption(DistCpOptionSwitch.SKIP_CRC.getSwitch()));
    if (command.hasOption(DistCpOptionSwitch.WORK_PATH.getSwitch()) && option.shouldAtomicCommit()) {
        String workPath = getVal(command, DistCpOptionSwitch.WORK_PATH.getSwitch());
        if (workPath != null && !workPath.isEmpty()) {
            option.setAtomicWorkPath(new Path(workPath));
        }
    } else if (command.hasOption(DistCpOptionSwitch.WORK_PATH.getSwitch())) {
        throw new IllegalArgumentException("-tmp work-path can only be specified along with -atomic");
    }
    if (command.hasOption(DistCpOptionSwitch.LOG_PATH.getSwitch())) {
        option.setLogPath(new Path(getVal(command, DistCpOptionSwitch.LOG_PATH.getSwitch())));
    }
    if (command.hasOption(DistCpOptionSwitch.BLOCKING.getSwitch())) {
        option.setBlocking(false);
    }
    parseBandwidth(command, option);
    parseNumListStatusThreads(command, option);
    parseMaxMaps(command, option);
    if (command.hasOption(DistCpOptionSwitch.COPY_STRATEGY.getSwitch())) {
        option.setCopyStrategy(getVal(command, DistCpOptionSwitch.COPY_STRATEGY.getSwitch()));
    }
    parsePreserveStatus(command, option);
    if (command.hasOption(DistCpOptionSwitch.DIFF.getSwitch())) {
        String[] snapshots = getVals(command, DistCpOptionSwitch.DIFF.getSwitch());
        checkSnapshotsArgs(snapshots);
        option.setUseDiff(snapshots[0], snapshots[1]);
    }
    if (command.hasOption(DistCpOptionSwitch.RDIFF.getSwitch())) {
        String[] snapshots = getVals(command, DistCpOptionSwitch.RDIFF.getSwitch());
        checkSnapshotsArgs(snapshots);
        option.setUseRdiff(snapshots[0], snapshots[1]);
    }
    parseFileLimit(command);
    parseSizeLimit(command);
    if (command.hasOption(DistCpOptionSwitch.FILTERS.getSwitch())) {
        option.setFiltersFile(getVal(command, DistCpOptionSwitch.FILTERS.getSwitch()));
    }
    option.validate();
    return option;
}
Also used : Path(org.apache.hadoop.fs.Path) CommandLine(org.apache.commons.cli.CommandLine) CommandLineParser(org.apache.commons.cli.CommandLineParser) ParseException(org.apache.commons.cli.ParseException)

Example 18 with CommandLine

use of org.apache.commons.cli.CommandLine in project hadoop by apache.

the class RumenToSLSConverter method main.

public static void main(String[] args) throws Exception {
    Options options = new Options();
    options.addOption("input", true, "input rumen json file");
    options.addOption("outputJobs", true, "output jobs file");
    options.addOption("outputNodes", true, "output nodes file");
    CommandLineParser parser = new GnuParser();
    CommandLine cmd = parser.parse(options, args);
    if (!cmd.hasOption("input") || !cmd.hasOption("outputJobs") || !cmd.hasOption("outputNodes")) {
        System.err.println();
        System.err.println("ERROR: Missing input or output file");
        System.err.println();
        System.err.println("LoadGenerator creates a SLS script " + "from a Hadoop Rumen output");
        System.err.println();
        System.err.println("Options: -input FILE -outputJobs FILE " + "-outputNodes FILE");
        System.err.println();
        System.exit(1);
    }
    String inputFile = cmd.getOptionValue("input");
    String outputJsonFile = cmd.getOptionValue("outputJobs");
    String outputNodeFile = cmd.getOptionValue("outputNodes");
    // check existing
    if (!new File(inputFile).exists()) {
        System.err.println();
        System.err.println("ERROR: input does not exist");
        System.exit(1);
    }
    if (new File(outputJsonFile).exists()) {
        System.err.println();
        System.err.println("ERROR: output job file is existing");
        System.exit(1);
    }
    if (new File(outputNodeFile).exists()) {
        System.err.println();
        System.err.println("ERROR: output node file is existing");
        System.exit(1);
    }
    File jsonFile = new File(outputJsonFile);
    if (!jsonFile.getParentFile().exists() && !jsonFile.getParentFile().mkdirs()) {
        System.err.println("ERROR: Cannot create output directory in path: " + jsonFile.getParentFile().getAbsoluteFile());
        System.exit(1);
    }
    File nodeFile = new File(outputNodeFile);
    if (!nodeFile.getParentFile().exists() && !nodeFile.getParentFile().mkdirs()) {
        System.err.println("ERROR: Cannot create output directory in path: " + nodeFile.getParentFile().getAbsoluteFile());
        System.exit(1);
    }
    generateSLSLoadFile(inputFile, outputJsonFile);
    generateSLSNodeFile(outputNodeFile);
}
Also used : Options(org.apache.commons.cli.Options) CommandLine(org.apache.commons.cli.CommandLine) GnuParser(org.apache.commons.cli.GnuParser) CommandLineParser(org.apache.commons.cli.CommandLineParser) File(java.io.File)

Example 19 with CommandLine

use of org.apache.commons.cli.CommandLine in project hadoop by apache.

the class RegistryCli method rm.

@SuppressWarnings("unchecked")
public int rm(String[] args) {
    Option recursive = OptionBuilder.withArgName("recursive").withDescription("delete recursively").create("r");
    Options rmOption = new Options();
    rmOption.addOption(recursive);
    boolean recursiveOpt = false;
    CommandLineParser parser = new GnuParser();
    try {
        CommandLine line = parser.parse(rmOption, args);
        List<String> argsList = line.getArgList();
        if (argsList.size() != 2) {
            return usageError("RM requires exactly one path argument", RM_USAGE);
        }
        if (!validatePath(argsList.get(1))) {
            return -1;
        }
        try {
            if (line.hasOption("r")) {
                recursiveOpt = true;
            }
            registry.delete(argsList.get(1), recursiveOpt);
            return 0;
        } catch (Exception e) {
            syserr.println(analyzeException("rm", e, argsList));
        }
        return -1;
    } catch (ParseException exp) {
        return usageError("Invalid syntax " + exp.toString(), RM_USAGE);
    }
}
Also used : Options(org.apache.commons.cli.Options) CommandLine(org.apache.commons.cli.CommandLine) GnuParser(org.apache.commons.cli.GnuParser) Option(org.apache.commons.cli.Option) CommandLineParser(org.apache.commons.cli.CommandLineParser) ParseException(org.apache.commons.cli.ParseException) URISyntaxException(java.net.URISyntaxException) InvalidRecordException(org.apache.hadoop.registry.client.exceptions.InvalidRecordException) InvalidPathnameException(org.apache.hadoop.registry.client.exceptions.InvalidPathnameException) AuthenticationFailedException(org.apache.hadoop.registry.client.exceptions.AuthenticationFailedException) PathNotFoundException(org.apache.hadoop.fs.PathNotFoundException) NoRecordException(org.apache.hadoop.registry.client.exceptions.NoRecordException) IOException(java.io.IOException) ParseException(org.apache.commons.cli.ParseException) AccessControlException(org.apache.hadoop.security.AccessControlException) NoPathPermissionsException(org.apache.hadoop.registry.client.exceptions.NoPathPermissionsException)

Example 20 with CommandLine

use of org.apache.commons.cli.CommandLine in project hadoop by apache.

the class RegistryCli method resolve.

@SuppressWarnings("unchecked")
public int resolve(String[] args) {
    Options resolveOption = new Options();
    CommandLineParser parser = new GnuParser();
    try {
        CommandLine line = parser.parse(resolveOption, args);
        List<String> argsList = line.getArgList();
        if (argsList.size() != 2) {
            return usageError("resolve requires exactly one path argument", RESOLVE_USAGE);
        }
        if (!validatePath(argsList.get(1))) {
            return -1;
        }
        try {
            ServiceRecord record = registry.resolve(argsList.get(1));
            for (Endpoint endpoint : record.external) {
                sysout.println(" Endpoint(ProtocolType=" + endpoint.protocolType + ", Api=" + endpoint.api + ");" + " Addresses(AddressType=" + endpoint.addressType + ") are: ");
                for (Map<String, String> address : endpoint.addresses) {
                    sysout.println("[ ");
                    for (Map.Entry<String, String> entry : address.entrySet()) {
                        sysout.print("\t" + entry.getKey() + ":" + entry.getValue());
                    }
                    sysout.println("\n]");
                }
                sysout.println();
            }
            return 0;
        } catch (Exception e) {
            syserr.println(analyzeException("resolve", e, argsList));
        }
        return -1;
    } catch (ParseException exp) {
        return usageError("Invalid syntax " + exp, RESOLVE_USAGE);
    }
}
Also used : Options(org.apache.commons.cli.Options) GnuParser(org.apache.commons.cli.GnuParser) URISyntaxException(java.net.URISyntaxException) InvalidRecordException(org.apache.hadoop.registry.client.exceptions.InvalidRecordException) InvalidPathnameException(org.apache.hadoop.registry.client.exceptions.InvalidPathnameException) AuthenticationFailedException(org.apache.hadoop.registry.client.exceptions.AuthenticationFailedException) PathNotFoundException(org.apache.hadoop.fs.PathNotFoundException) NoRecordException(org.apache.hadoop.registry.client.exceptions.NoRecordException) IOException(java.io.IOException) ParseException(org.apache.commons.cli.ParseException) AccessControlException(org.apache.hadoop.security.AccessControlException) NoPathPermissionsException(org.apache.hadoop.registry.client.exceptions.NoPathPermissionsException) ServiceRecord(org.apache.hadoop.registry.client.types.ServiceRecord) CommandLine(org.apache.commons.cli.CommandLine) Endpoint(org.apache.hadoop.registry.client.types.Endpoint) CommandLineParser(org.apache.commons.cli.CommandLineParser) ParseException(org.apache.commons.cli.ParseException) Map(java.util.Map)

Aggregations

CommandLine (org.apache.commons.cli.CommandLine)399 Options (org.apache.commons.cli.Options)257 ParseException (org.apache.commons.cli.ParseException)247 CommandLineParser (org.apache.commons.cli.CommandLineParser)246 GnuParser (org.apache.commons.cli.GnuParser)187 HelpFormatter (org.apache.commons.cli.HelpFormatter)127 IOException (java.io.IOException)90 PosixParser (org.apache.commons.cli.PosixParser)74 File (java.io.File)68 Option (org.apache.commons.cli.Option)53 Path (org.apache.hadoop.fs.Path)50 DefaultParser (org.apache.commons.cli.DefaultParser)41 Configuration (org.apache.hadoop.conf.Configuration)32 ArrayList (java.util.ArrayList)28 Job (org.apache.hadoop.mapreduce.Job)28 Properties (java.util.Properties)20 BasicParser (org.apache.commons.cli.BasicParser)20 FileInputStream (java.io.FileInputStream)19 FileSystem (org.apache.hadoop.fs.FileSystem)16 HBaseConfiguration (org.apache.hadoop.hbase.HBaseConfiguration)13