Uploaded image for project: 'Mahout'
  1. Mahout
  2. MAHOUT-301

Improve command-line shell script by allowing default properties files

    Details

    • Type: New Feature
    • Status: Closed
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 0.3
    • Fix Version/s: 0.3
    • Component/s: Integration
    • Labels:
      None

      Description

      Snippet from javadoc gives the idea:

      /**
       * General-purpose driver class for Mahout programs.  Utilizes org.apache.hadoop.util.ProgramDriver to run
       * main methods of other classes, but first loads up default properties from a properties file.
       *
       * Usage: run on Hadoop like so:
       *
       * $HADOOP_HOME/bin/hadoop -jar path/to/job org.apache.mahout.driver.MahoutDriver [classes.props file] shortJobName \
       *   [default.props file for this class] [over-ride options, all specified in long form: --input, --jarFile, etc]
       *
       * TODO: set the Main-Class to just be MahoutDriver, so that this option isn't needed?
       *
       * (note: using the current shell scipt, this could be modified to be just 
       * $MAHOUT_HOME/bin/mahout [classes.props file] shortJobName [default.props file] [over-ride options]
       * )
       *
       * Works like this: by default, the file "core/src/main/resources/driver.classes.prop" is loaded, which
       * defines a mapping between short names like "VectorDumper" and fully qualified class names.  This file may
       * instead be overridden on the command line by having the first argument be some string of the form *classes.props.
       *
       * The next argument to the Driver is supposed to be the short name of the class to be run (as defined in the
       * driver.classes.props file).  After this, if the next argument ends in ".props" / ".properties", it is taken to
       * be the file to use as the default properties file for this execution, and key-value pairs are built up from that:
       * if the file contains
       *
       * input=/path/to/my/input
       * output=/path/to/my/output
       *
       * Then the class which will be run will have it's main called with
       *
       *   main(new String[] { "--input", "/path/to/my/input", "--output", "/path/to/my/output" });
       *
       * After all the "default" properties are loaded from the file, any further command-line arguments are taken in,
       * and over-ride the defaults.
       */
      

      Could be cleaned up, as it's kinda ugly with the whole "file named in .props", but gives the idea. Really helps cut down on repetitive long command lines, lets defaults be put props files instead of locked into the code also.

        Attachments

        1. MAHOUT-301.patch
          20 kB
          Jake Mannix
        2. MAHOUT-301.patch
          14 kB
          Jake Mannix
        3. MAHOUT-301.patch
          13 kB
          Jake Mannix
        4. MAHOUT-301.patch
          9 kB
          Jake Mannix
        5. MAHOUT-301.patch
          9 kB
          Jake Mannix
        6. MAHOUT-301.patch
          6 kB
          Jake Mannix
        7. MAHOUT-301-drew.patch
          14 kB
          Drew Farris
        8. MAHOUT-301-drew.patch
          11 kB
          Drew Farris

          Issue Links

          There are no Sub-Tasks for this issue.

            Activity

              People

              • Assignee:
                jake.mannix Jake Mannix
                Reporter:
                jake.mannix Jake Mannix
              • Votes:
                0 Vote for this issue
                Watchers:
                0 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: