Shell (Hadoop 0.20.2+320 API)
Date: 2010-06-28

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.hadoop.util
Class Shell

    java.lang.Object
      org.apache.hadoop.util.Shell

Direct Known Subclasses:
  DF, DU, Shell.ShellCommandExecutor

    public abstract class Shell

extends Object

A base class for running a Unix command. `Shell` can be used to run unix commands like `du` or `df`. It also offers facilities to gate commands by time-intervals.

Nested Class Summary
`static class` | `Shell.ExitCodeException` This is an IOException with exit code added.
`static class` | `Shell.ShellCommandExecutor` A simple shell command executor.

Field Summary
`static org.apache.commons.logging.Log` | `LOG`
`static String` | `SET_GROUP_COMMAND`
`static String` | `SET_OWNER_COMMAND` a Unix command to set owner
`static String` | `SET_PERMISSION_COMMAND` a Unix command to set permission
`static String` | `USER_NAME_COMMAND` a Unix command to get the current user's name
`static boolean` | `WINDOWS` Set to true on Windows platforms

Constructor Summary
`Shell()`
`Shell(long interval)`

Method Summary
`static String` | `execCommand(Map<String,String> env, String... cmd)` Static method to execute a shell command.
`static String` | `execCommand(String... cmd)` Static method to execute a shell command.
`protected abstract String[]` | `getExecString()` return an array containing the command name & its parameters
`int` | `getExitCode()` get the exit code
`static String[]` | `getGET_PERMISSION_COMMAND()` Return a Unix command to get permission information.
`static String[]` | `getGROUPS_COMMAND()` a Unix command to get the current user's groups list
`Process` | `getProcess()` get the current sub-process executing the given command
`static String[]` | `getUlimitMemoryCommand(Configuration conf)` Get the Unix command for setting the maximum virtual memory available to a given child process.
`protected abstract void` | `parseExecResult(BufferedReader lines)` Parse the execution result
`protected void` | `run()` check to see if a command needs to be executed and execute if needed
`protected void` | `setEnvironment(Map<String,String> env)` set the environment for the command
`protected void` | `setWorkingDirectory(File dir)` set the working directory

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### LOG

    public static final org.apache.commons.logging.Log LOG

### USER_NAME_COMMAND

    public static final String USER_NAME_COMMAND

  a Unix command to get the current user's name

  See Also:
    Constant Field Values

### SET_PERMISSION_COMMAND

    public static final String SET_PERMISSION_COMMAND

  a Unix command to set permission

  See Also:
    Constant Field Values

### SET_OWNER_COMMAND

    public static final String SET_OWNER_COMMAND

  a Unix command to set owner

  See Also:
    Constant Field Values

### SET_GROUP_COMMAND

    public static final String SET_GROUP_COMMAND

See Also:
  Constant Field Values

### WINDOWS

    public static final boolean WINDOWS

  Set to true on Windows platforms

Constructor Detail

### Shell

    public Shell()

### Shell

    public Shell(long interval)

Parameters:
  `interval` - the minimum duration to wait before re-executing the command.

Method Detail

### getGROUPS_COMMAND

    public static String[] getGROUPS_COMMAND()

  a Unix command to get the current user's groups list

### getGET_PERMISSION_COMMAND

    public static String[] getGET_PERMISSION_COMMAND()

  Return a Unix command to get permission information.

### getUlimitMemoryCommand

    public static String[] getUlimitMemoryCommand(Configuration conf)

  Get the Unix command for setting the maximum virtual memory available to a given child process. This is only relevant when we are forking a process from within the `Mapper` or the `Reducer` implementations e.g. Hadoop Pipes or Hadoop Streaming. It also checks to ensure that we are running on a *nix platform else (e.g. in Cygwin/Windows) it returns `null`.

  Parameters:
    `conf` - configuration
  Returns:
    a `String[]` with the ulimit command arguments or `null` if we are running on a non *nix platform or if the limit is unspecified.

### setEnvironment

    protected void setEnvironment(Map<String,String> env)

  set the environment for the command

  Parameters:
    `env` - Mapping of environment variables

### setWorkingDirectory

    protected void setWorkingDirectory(File dir)

  set the working directory

  Parameters:
    `dir` - The directory where the command would be executed

### run

    protected void run()
                throws IOException

  check to see if a command needs to be executed and execute if needed

  Throws:
    `IOException`

### getExecString

    protected abstract String[] getExecString()

  return an array containing the command name & its parameters

### parseExecResult

    protected abstract void parseExecResult(BufferedReader lines)
                                     throws IOException

  Parse the execution result

  Throws:
    `IOException`

### getProcess

    public Process getProcess()

  get the current sub-process executing the given command

  Returns:
    process executing the command

### getExitCode

    public int getExitCode()

  get the exit code

  Returns:
    the exit code of the process

### execCommand

    public static String execCommand(String... cmd)
                              throws IOException

  Static method to execute a shell command. Covers most of the simple cases without requiring the user to implement the `Shell` interface.

  Parameters:
    `cmd` - shell command to execute.
  Returns:
    the output of the executed command.
  Throws:
    `IOException`

### execCommand

    public static String execCommand(Map<String,String> env,
                                     String... cmd)
                              throws IOException

  Static method to execute a shell command. Covers most of the simple cases without requiring the user to implement the `Shell` interface.

  Parameters:
    `env` - the map of environment key=value
    `cmd` - shell command to execute.
  Returns:
    the output of the executed command.
  Throws:
    `IOException`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2009 The Apache Software Foundation