Package org.apache.storm.hdfs.blobstore

# Class HdfsBlobStoreImpl

java.lang.Object
org.apache.storm.hdfs.blobstore.HdfsBlobStoreImpl

public class HdfsBlobStoreImpl extends Object
HDFS blob store impl.

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `class`
  `HdfsBlobStoreImpl.KeyInHashDirIterator`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final org.apache.hadoop.fs.permission.FsPermission`
  `BLOBSTORE_DIR_PERMISSION`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `HdfsBlobStoreImpl(org.apache.hadoop.fs.Path path, Map<String,Object> conf)`
  `HdfsBlobStoreImpl(org.apache.hadoop.fs.Path path, Map<String,Object> conf, org.apache.hadoop.conf.Configuration hconf)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected void`
  `delete(org.apache.hadoop.fs.Path path)`
  `void`
  `deleteKey(String key)`
  Delete a key from the blob store.
  `boolean`
  `exists(String key)`
  Check if the key exists in the blob store.
  `void`
  `fullCleanup(long age)`
  `protected int`
  `getBlobReplication(String key)`
  `protected org.apache.hadoop.fs.Path`
  `getKeyDir(String key)`
  `long`
  `getLastBlobUpdateTime()`
  Get the last update time of any blob.
  `protected Iterator<BlobStoreFile>`
  `listBlobStoreFiles(org.apache.hadoop.fs.Path path)`
  `Iterator<String>`
  `listKeys()`
  List relevant keys.
  `protected Iterator<String>`
  `listKeys(org.apache.hadoop.fs.Path path)`
  `BlobStoreFile`
  `read(String key)`
  Get an input stream for reading a part.
  `void`
  `shutdown()`
  `protected int`
  `updateBlobReplication(String key, int replication)`
  `void`
  `updateLastBlobUpdateTime()`
  Updates the last updated time of existing blobstores to the current time.
  `void`
  `validateBlobUpdateTime()`
  Validates that the last updated blob time of the blobstore is up to date with the current existing blobs.
  `BlobStoreFile`
  `write(String key, boolean create)`
  Get an object tied to writing the data.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### BLOBSTORE_DIR_PERMISSION

    public static final org.apache.hadoop.fs.permission.FsPermission BLOBSTORE_DIR_PERMISSION

- ## Constructor Details

  - ### HdfsBlobStoreImpl

    public HdfsBlobStoreImpl(org.apache.hadoop.fs.Path path, Map<String,Object> conf) throws IOException
    Throws:
      `IOException`

  - ### HdfsBlobStoreImpl

    public HdfsBlobStoreImpl(org.apache.hadoop.fs.Path path, Map<String,Object> conf, org.apache.hadoop.conf.Configuration hconf) throws IOException
    Throws:
      `IOException`

- ## Method Details

  - ### listKeys

    public Iterator<String> listKeys() throws IOException
    List relevant keys.
    Returns:
      all keys that are available for reading
    Throws:
      `IOException` - on any error

  - ### listKeys

    protected Iterator<String> listKeys(org.apache.hadoop.fs.Path path) throws IOException
    Throws:
      `IOException`

  - ### read

    public BlobStoreFile read(String key) throws IOException
    Get an input stream for reading a part.
    Parameters:
      `key` - the key of the part to read
    Returns:
      the where to read the data from
    Throws:
      `IOException` - on any error

  - ### write

    public BlobStoreFile write(String key, boolean create) throws IOException
    Get an object tied to writing the data.
    Parameters:
      `key` - the key of the part to write to.
      `create` - whether the file needs to be new or not.
    Returns:
      an object that can be used to both write to, but also commit/cancel the operation.
    Throws:
      `IOException` - on any error

  - ### exists

    public boolean exists(String key)
    Check if the key exists in the blob store.
    Parameters:
      `key` - the key to check for
    Returns:
      true if it exists else false.

  - ### deleteKey

    public void deleteKey(String key) throws IOException
    Delete a key from the blob store.
    Parameters:
      `key` - the key to delete
    Throws:
      `IOException` - on any error

  - ### getKeyDir

    protected org.apache.hadoop.fs.Path getKeyDir(String key)

  - ### fullCleanup

    public void fullCleanup(long age) throws IOException
    Throws:
      `IOException`

  - ### listBlobStoreFiles

    protected Iterator<BlobStoreFile> listBlobStoreFiles(org.apache.hadoop.fs.Path path) throws IOException
    Throws:
      `IOException`

  - ### getBlobReplication

    protected int getBlobReplication(String key) throws IOException
    Throws:
      `IOException`

  - ### updateBlobReplication

    protected int updateBlobReplication(String key, int replication) throws IOException
    Throws:
      `IOException`

  - ### delete

    protected void delete(org.apache.hadoop.fs.Path path) throws IOException
    Throws:
      `IOException`

  - ### shutdown

    public void shutdown()

  - ### getLastBlobUpdateTime

    public long getLastBlobUpdateTime() throws IOException
    Get the last update time of any blob.
    Returns:
      the last updated time of blobs within the blobstore.
    Throws:
      `IOException` - on any error

  - ### updateLastBlobUpdateTime

    public void updateLastBlobUpdateTime() throws IOException
    Updates the last updated time of existing blobstores to the current time.
    Throws:
      `IOException` - on any error

  - ### validateBlobUpdateTime

    public void validateBlobUpdateTime() throws IOException
    Validates that the last updated blob time of the blobstore is up to date with the current existing blobs.
    Throws:
      `IOException` - on any error