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

java.lang.Object
  extended by org.apache.hadoop.hbase.regionserver.metrics.SchemaConfigured
      extended by org.apache.hadoop.hbase.io.hfile.AbstractHFileWriter
          extended by org.apache.hadoop.hbase.io.hfile.HFileWriterV2
All Implemented Interfaces:
Closeable, HeapSize, HFile.Writer, SchemaMetrics.SchemaAware

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
blockEncoder, blockSize, cacheConf, closeOutputStream, comparator, compressAlgo, entryCount, fileInfo, firstKeyInBlock, lastKeyBuffer, lastKeyLength, lastKeyOffset, metaData, metaNames, name, outputStream, path, totalKeyLength, totalUncompressedBytes, totalValueLength
 
Fields inherited from class org.apache.hadoop.hbase.regionserver.metrics.SchemaConfigured
SCHEMA_CONFIGURED_UNALIGNED_HEAP_SIZE
 
Constructor Summary
HFileWriterV2(org.apache.hadoop.conf.Configuration conf, CacheConfig cacheConf, org.apache.hadoop.fs.FileSystem fs, org.apache.hadoop.fs.Path path, org.apache.hadoop.fs.FSDataOutputStream ostream, int blockSize, Compression.Algorithm compressAlgo, HFileDataBlockEncoder blockEncoder, KeyValue.KeyComparator comparator, ChecksumType checksumType, int bytesPerChecksum)
          Constructor that takes a path, creates and closes the output stream.
 
Method Summary
 void addDeleteFamilyBloomFilter(BloomFilterWriter bfw)
          Store delete family Bloom filter in the file, which is only supported in HFile V2.
 void addGeneralBloomFilter(BloomFilterWriter bfw)
          Store general 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()
           
protected  void schemaConfigurationChanged()
          A hook method called when schema configuration changes.
 
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 org.apache.hadoop.hbase.regionserver.metrics.SchemaConfigured
createUnknown, getColumnFamilyName, getSchemaMetrics, getTableName, heapSize, isSchemaConfigured, passSchemaMetricsTo, resetSchemaMetricsConf, schemaConfAsJSON
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.apache.hadoop.hbase.io.hfile.HFile.Writer
getColumnFamilyName
 

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,
                     org.apache.hadoop.fs.FSDataOutputStream ostream,
                     int blockSize,
                     Compression.Algorithm compressAlgo,
                     HFileDataBlockEncoder blockEncoder,
                     KeyValue.KeyComparator comparator,
                     ChecksumType checksumType,
                     int bytesPerChecksum)
              throws IOException
Constructor that takes a path, creates and closes the output stream.

Throws:
IOException
Method Detail

schemaConfigurationChanged

protected void schemaConfigurationChanged()
Description copied from class: SchemaConfigured
A hook method called when schema configuration changes. Can be used to update schema-aware member fields.

Overrides:
schemaConfigurationChanged in class SchemaConfigured

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.


addGeneralBloomFilter

public void addGeneralBloomFilter(BloomFilterWriter bfw)
Description copied from interface: HFile.Writer
Store general 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.


addDeleteFamilyBloomFilter

public void addDeleteFamilyBloomFilter(BloomFilterWriter bfw)
Description copied from interface: HFile.Writer
Store delete family Bloom filter in the file, which is only supported in HFile V2.



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