@InterfaceAudience.Private public abstract class AbstractHFileWriter extends java.lang.Object implements HFile.Writer
HFile
writers.Modifier and Type | Field and Description |
---|---|
protected HFileDataBlockEncoder |
blockEncoder
The data block encoding which will be used.
|
protected CacheConfig |
cacheConf
Cache configuration for caching data on write.
|
protected boolean |
closeOutputStream
True if we opened the
outputStream (and so will close it). |
protected KeyValue.KVComparator |
comparator
Key comparator.
|
protected long |
entryCount
Total # of key/value entries, i.e.
|
protected HFile.FileInfo |
fileInfo
A "file info" block: a key-value map of file-wide metadata.
|
protected Cell |
firstCellInBlock
First cell in a block.
|
protected HFileContext |
hFileContext |
protected Cell |
lastCell
The Cell previously appended.
|
protected java.util.List<Writable> |
metaData
Writable s representing meta block data. |
protected java.util.List<byte[]> |
metaNames
Meta block names.
|
protected java.lang.String |
name
Name for this object used when logging or in toString.
|
protected FSDataOutputStream |
outputStream
FileSystem stream to write into.
|
protected Path |
path
May be null if we were passed a stream.
|
protected long |
totalKeyLength
Used for calculating the average key length.
|
protected long |
totalUncompressedBytes
Total uncompressed bytes, maybe calculate a compression ratio later.
|
protected long |
totalValueLength
Used for calculating the average value length.
|
Constructor and Description |
---|
AbstractHFileWriter(CacheConfig cacheConf,
FSDataOutputStream outputStream,
Path path,
KeyValue.KVComparator comparator,
HFileContext fileContext) |
Modifier and Type | Method and Description |
---|---|
void |
appendFileInfo(byte[] k,
byte[] v)
Add to the file info.
|
protected boolean |
checkKey(Cell cell)
Checks that the given Cell's key does not violate the key order.
|
protected void |
checkValue(byte[] value,
int offset,
int length)
Checks the given value for validity.
|
static Compression.Algorithm |
compressionByName(java.lang.String algoName) |
protected static FSDataOutputStream |
createOutputStream(Configuration conf,
FileSystem fs,
Path path,
java.net.InetSocketAddress[] favoredNodes)
A helper method to create HFile output streams in constructors
|
protected void |
finishClose(FixedFileTrailer trailer)
Sets remaining trailer fields, writes the trailer to disk, and optionally
closes the output stream.
|
protected void |
finishFileInfo()
Add last bits of metadata to file info before it is written out.
|
Path |
getPath() |
java.lang.String |
toString() |
protected void |
writeFileInfo(FixedFileTrailer trailer,
java.io.DataOutputStream out)
Sets the file info offset in the trailer, finishes up populating fields in
the file info, and writes the file info into the given data output.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
addDeleteFamilyBloomFilter, addGeneralBloomFilter, addInlineBlockWriter, append, appendMetaBlock, getFileContext
protected Cell lastCell
protected FSDataOutputStream outputStream
protected final boolean closeOutputStream
outputStream
(and so will close it).protected HFile.FileInfo fileInfo
protected long entryCount
protected long totalKeyLength
protected long totalValueLength
protected long totalUncompressedBytes
protected final KeyValue.KVComparator comparator
protected java.util.List<byte[]> metaNames
protected java.util.List<Writable> metaData
Writable
s representing meta block data.protected Cell firstCellInBlock
protected final Path path
protected final CacheConfig cacheConf
protected final java.lang.String name
protected final HFileDataBlockEncoder blockEncoder
NoOpDataBlockEncoder.INSTANCE
if there is no encoding.protected final HFileContext hFileContext
public AbstractHFileWriter(CacheConfig cacheConf, FSDataOutputStream outputStream, Path path, KeyValue.KVComparator comparator, HFileContext fileContext)
protected void finishFileInfo() throws java.io.IOException
java.io.IOException
public void appendFileInfo(byte[] k, byte[] v) throws java.io.IOException
HFile.Reader.loadFileInfo()
.appendFileInfo
in interface HFile.Writer
k
- Keyv
- Valuejava.io.IOException
- in case the key or the value are invalidprotected final void writeFileInfo(FixedFileTrailer trailer, java.io.DataOutputStream out) throws java.io.IOException
outputStream
is that we store
file info as a block in version 2.trailer
- fixed file trailerout
- the data output to write the file info tojava.io.IOException
protected boolean checkKey(Cell cell) throws java.io.IOException
cell
- Cell whose key to check.java.io.IOException
- if the key or the key order is wrongprotected void checkValue(byte[] value, int offset, int length) throws java.io.IOException
java.io.IOException
public Path getPath()
getPath
in interface HFile.Writer
public java.lang.String toString()
toString
in class java.lang.Object
protected void finishClose(FixedFileTrailer trailer) throws java.io.IOException
java.io.IOException
public static Compression.Algorithm compressionByName(java.lang.String algoName)
protected static FSDataOutputStream createOutputStream(Configuration conf, FileSystem fs, Path path, java.net.InetSocketAddress[] favoredNodes) throws java.io.IOException
java.io.IOException