org.apache.hadoop.hbase.io.hfile
Class HFileWriterV2

java.lang.Object
  extended by org.apache.hadoop.hbase.io.hfile.AbstractHFileWriter
      extended by org.apache.hadoop.hbase.io.hfile.HFileWriterV2
All Implemented Interfaces:
Closeable, HFile.Writer

public class HFileWriterV2
extends AbstractHFileWriter

Writes HFile format version 2.


Field Summary
static int KEY_VALUE_VER_WITH_MEMSTORE
          Version for KeyValue which includes memstore timestamp
static byte[] KEY_VALUE_VERSION
          KeyValue version in FileInfo
static byte[] MAX_MEMSTORE_TS_KEY
          Max memstore (mvcc) timestamp in FileInfo
 
Fields inherited from class org.apache.hadoop.hbase.io.hfile.AbstractHFileWriter
blockSize, cacheConf, closeOutputStream, comparator, compressAlgo, entryCount, fileInfo, firstKeyInBlock, lastKeyBuffer, lastKeyLength, lastKeyOffset, metaData, metaNames, name, outputStream, path, totalKeyLength, totalUncompressedBytes, totalValueLength
 
Constructor Summary
HFileWriterV2(org.apache.hadoop.conf.Configuration conf, CacheConfig cacheConf, org.apache.hadoop.fs.FileSystem fs, org.apache.hadoop.fs.Path path)
          Constructor that uses all defaults for compression and block size.
HFileWriterV2(org.apache.hadoop.conf.Configuration conf, CacheConfig cacheConf, org.apache.hadoop.fs.FileSystem fs, org.apache.hadoop.fs.Path path, int blockSize, Compression.Algorithm compressAlgo, KeyValue.KeyComparator comparator)
          Constructor that takes a path, creates and closes the output stream.
HFileWriterV2(org.apache.hadoop.conf.Configuration conf, CacheConfig cacheConf, org.apache.hadoop.fs.FileSystem fs, org.apache.hadoop.fs.Path path, int blockSize, String compressAlgoName, KeyValue.KeyComparator comparator)
          Constructor that takes a path, creates and closes the output stream.
HFileWriterV2(org.apache.hadoop.conf.Configuration conf, CacheConfig cacheConf, org.apache.hadoop.fs.FSDataOutputStream outputStream, int blockSize, Compression.Algorithm compress, KeyValue.KeyComparator comparator)
          Constructor that takes a stream.
HFileWriterV2(org.apache.hadoop.conf.Configuration conf, CacheConfig cacheConf, org.apache.hadoop.fs.FSDataOutputStream outputStream, int blockSize, String compressAlgoName, KeyValue.KeyComparator comparator)
          Constructor that takes a stream.
 
Method Summary
 void addBloomFilter(BloomFilterWriter bfw)
          Store Bloom filter in the file.
 void addInlineBlockWriter(InlineBlockWriter ibw)
          Adds an inline block writer such as a multi-level block index writer or a compound Bloom filter writer.
 void append(byte[] key, byte[] value)
          Add key/value to file.
 void append(KeyValue kv)
          Add key/value to file.
 void appendMetaBlock(String metaBlockName, org.apache.hadoop.io.Writable content)
          Add a meta block to the end of the file.
 void close()
           
 
Methods inherited from class org.apache.hadoop.hbase.io.hfile.AbstractHFileWriter
appendFileInfo, checkKey, checkValue, compressionByName, createOutputStream, finishClose, finishFileInfo, getPath, toString, writeFileInfo
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

MAX_MEMSTORE_TS_KEY

public static final byte[] MAX_MEMSTORE_TS_KEY
Max memstore (mvcc) timestamp in FileInfo


KEY_VALUE_VERSION

public static final byte[] KEY_VALUE_VERSION
KeyValue version in FileInfo


KEY_VALUE_VER_WITH_MEMSTORE

public static final int KEY_VALUE_VER_WITH_MEMSTORE
Version for KeyValue which includes memstore timestamp

See Also:
Constant Field Values
Constructor Detail

HFileWriterV2

public HFileWriterV2(org.apache.hadoop.conf.Configuration conf,
                     CacheConfig cacheConf,
                     org.apache.hadoop.fs.FileSystem fs,
                     org.apache.hadoop.fs.Path path)
              throws IOException
Constructor that uses all defaults for compression and block size.

Throws:
IOException

HFileWriterV2

public HFileWriterV2(org.apache.hadoop.conf.Configuration conf,
                     CacheConfig cacheConf,
                     org.apache.hadoop.fs.FileSystem fs,
                     org.apache.hadoop.fs.Path path,
                     int blockSize,
                     String compressAlgoName,
                     KeyValue.KeyComparator comparator)
              throws IOException
Constructor that takes a path, creates and closes the output stream. Takes compression algorithm name as string.

Throws:
IOException

HFileWriterV2

public HFileWriterV2(org.apache.hadoop.conf.Configuration conf,
                     CacheConfig cacheConf,
                     org.apache.hadoop.fs.FileSystem fs,
                     org.apache.hadoop.fs.Path path,
                     int blockSize,
                     Compression.Algorithm compressAlgo,
                     KeyValue.KeyComparator comparator)
              throws IOException
Constructor that takes a path, creates and closes the output stream.

Throws:
IOException

HFileWriterV2

public HFileWriterV2(org.apache.hadoop.conf.Configuration conf,
                     CacheConfig cacheConf,
                     org.apache.hadoop.fs.FSDataOutputStream outputStream,
                     int blockSize,
                     String compressAlgoName,
                     KeyValue.KeyComparator comparator)
              throws IOException
Constructor that takes a stream.

Throws:
IOException

HFileWriterV2

public HFileWriterV2(org.apache.hadoop.conf.Configuration conf,
                     CacheConfig cacheConf,
                     org.apache.hadoop.fs.FSDataOutputStream outputStream,
                     int blockSize,
                     Compression.Algorithm compress,
                     KeyValue.KeyComparator comparator)
              throws IOException
Constructor that takes a stream.

Throws:
IOException
Method Detail

appendMetaBlock

public void appendMetaBlock(String metaBlockName,
                            org.apache.hadoop.io.Writable content)
Add a meta block to the end of the file. Call before close(). Metadata blocks are expensive. Fill one with a bunch of serialized data rather than do a metadata block per metadata instance. If metadata is small, consider adding to file info using AbstractHFileWriter.appendFileInfo(byte[], byte[])

Parameters:
metaBlockName - name of the block
content - will call readFields to get data later (DO NOT REUSE)

append

public void append(KeyValue kv)
            throws IOException
Add key/value to file. Keys must be added in an order that agrees with the Comparator passed on construction.

Parameters:
kv - KeyValue to add. Cannot be empty nor null.
Throws:
IOException

append

public void append(byte[] key,
                   byte[] value)
            throws IOException
Add key/value to file. Keys must be added in an order that agrees with the Comparator passed on construction.

Parameters:
key - Key to add. Cannot be empty nor null.
value - Value to add. Cannot be empty nor null.
Throws:
IOException

close

public void close()
           throws IOException
Throws:
IOException

addInlineBlockWriter

public void addInlineBlockWriter(InlineBlockWriter ibw)
Description copied from interface: HFile.Writer
Adds an inline block writer such as a multi-level block index writer or a compound Bloom filter writer.


addBloomFilter

public void addBloomFilter(BloomFilterWriter bfw)
Description copied from interface: HFile.Writer
Store Bloom filter in the file. This does not deal with Bloom filter internals but is necessary, since Bloom filters are stored differently in HFile version 1 and version 2.



Copyright © 2012 The Apache Software Foundation. All Rights Reserved.