## org.apache.hadoop.io
Class MapFile

    java.lang.Object
      org.apache.hadoop.io.MapFile

Direct Known Subclasses:
  ArrayFile, SetFile

    public class MapFile

extends Object

A file-based map from keys to values.

A map is a directory containing two files, the `data` file, containing all keys and values in the map, and a smaller `index` file, containing a fraction of the keys. The fraction is determined by `MapFile.Writer.getIndexInterval()`.

The index file is read entirely into memory. Thus key implementations should try to keep themselves small.

Map files are created by adding entries in-order. To maintain a large database, perform updates by copying the previous version of a database and merging in a sorted change list, to create a new version of the database in a new file. Sorting large change lists can be done with `SequenceFile.Sorter`.

Nested Class Summary
`static class` `MapFile.Reader` Provide access to an existing map.
`static class` `MapFile.Writer` Writes a new map.

Field Summary
`static String` `DATA_FILE_NAME` The name of the data file.
`static String` `INDEX_FILE_NAME` The name of the index file.

Constructor Summary
`protected` `MapFile()`

Method Summary
`static void` `delete(FileSystem fs, String name)` Deletes the named map file.
`static long` `fix(FileSystem fs, Path dir, Class<? extends Writable> keyClass, Class<? extends Writable> valueClass, boolean dryrun, Configuration conf)` This method attempts to fix a corrupt MapFile by re-creating its index.
`static void` `main(String[] args)`
`static void` `rename(FileSystem fs, String oldName, String newName)` Renames an existing map directory.

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

Field Detail

### INDEX_FILE_NAME

    public static final String INDEX_FILE_NAME

  The name of the index file.

  See Also:
    Constant Field Values

### DATA_FILE_NAME

    public static final String DATA_FILE_NAME

  The name of the data file.

  See Also:
    Constant Field Values

Constructor Detail

### MapFile

    protected MapFile()

Method Detail

### rename

    public static void rename(FileSystem fs,
                              String oldName,
                              String newName)
                       throws IOException

  Renames an existing map directory.

  Throws:
    `IOException`

### delete

    public static void delete(FileSystem fs,
                              String name)
                       throws IOException

  Deletes the named map file.

  Throws:
    `IOException`

### fix

    public static long fix(FileSystem fs,
                           Path dir,
                           Class<? extends Writable> keyClass,
                           Class<? extends Writable> valueClass,
                           boolean dryrun,
                           Configuration conf)
                    throws Exception

  This method attempts to fix a corrupt MapFile by re-creating its index.

  Parameters:
    `fs` - filesystem
    `dir` - directory containing the MapFile data and index
    `keyClass` - key class (has to be a subclass of Writable)
    `valueClass` - value class (has to be a subclass of Writable)
    `dryrun` - do not perform any changes, just report what needs to be done
  Returns:
    number of valid entries in this MapFile, or -1 if no fixing was needed
  Throws:
    `Exception`

### main

    public static void main(String[] args)
                     throws Exception

  Throws:
    `Exception`

Copyright © 2009 The Apache Software Foundation