Class Hash

java.lang.Object
org.apache.hadoop.util.hash.Hash
Direct Known Subclasses:
JenkinsHash, MurmurHash

@Private @Unstable public abstract class Hash extends Object
This class represents a common API for hashing functions.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
    Constant to denote invalid hash type.
    static final int
    Constant to denote JenkinsHash.
    static final int
    Constant to denote MurmurHash.
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static int
    This utility method converts the name of the configured hash type to a symbolic constant.
    static Hash
    getInstance(int type)
    Get a singleton instance of hash function of a given type.
    static Hash
    Get a singleton instance of hash function of a type defined in the configuration.
    int
    hash(byte[] bytes)
    Calculate a hash using all bytes from the input argument, and a seed of -1.
    int
    hash(byte[] bytes, int initval)
    Calculate a hash using all bytes from the input argument, and a provided seed value.
    abstract int
    hash(byte[] bytes, int length, int initval)
    Calculate a hash using bytes from 0 to length, and the provided seed value
    static int
    This utility method converts String representation of hash function name to a symbolic constant.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

  • Constructor Details

    • Hash

      public Hash()
  • Method Details

    • parseHashType

      public static int parseHashType(String name)
      This utility method converts String representation of hash function name to a symbolic constant. Currently two function types are supported, "jenkins" and "murmur".
      Parameters:
      name - hash function name
      Returns:
      one of the predefined constants
    • getHashType

      public static int getHashType(Configuration conf)
      This utility method converts the name of the configured hash type to a symbolic constant.
      Parameters:
      conf - configuration
      Returns:
      one of the predefined constants
    • getInstance

      public static Hash getInstance(int type)
      Get a singleton instance of hash function of a given type.
      Parameters:
      type - predefined hash type
      Returns:
      hash function instance, or null if type is invalid
    • getInstance

      public static Hash getInstance(Configuration conf)
      Get a singleton instance of hash function of a type defined in the configuration.
      Parameters:
      conf - current configuration
      Returns:
      defined hash type, or null if type is invalid
    • hash

      public int hash(byte[] bytes)
      Calculate a hash using all bytes from the input argument, and a seed of -1.
      Parameters:
      bytes - input bytes
      Returns:
      hash value
    • hash

      public int hash(byte[] bytes, int initval)
      Calculate a hash using all bytes from the input argument, and a provided seed value.
      Parameters:
      bytes - input bytes
      initval - seed value
      Returns:
      hash value
    • hash

      public abstract int hash(byte[] bytes, int length, int initval)
      Calculate a hash using bytes from 0 to length, and the provided seed value
      Parameters:
      bytes - input bytes
      length - length of the valid bytes to consider
      initval - seed value
      Returns:
      hash value