public TFileMeta(DataInput in) throws IOException { version = new Version(in); if (!version.compatibleWith(TFile.API_VERSION)) { throw new RuntimeException("Incompatible TFile fileVersion."); } recordCount = Utils.readVLong(in); strComparator = Utils.readString(in); comparator = makeComparator(strComparator); }
/** * Constructor * * @param fin * FS input stream. * @param fileLength * Length of the corresponding file * @throws IOException */ public Reader(FSDataInputStream fin, long fileLength, Configuration conf) throws IOException { this.in = fin; this.conf = conf; // move the cursor to the beginning of the tail, containing: offset to the // meta block index, version and magic fin.seek(fileLength - Magic.size() - Version.size() - Long.SIZE / Byte.SIZE); long offsetIndexMeta = fin.readLong(); version = new Version(fin); Magic.readAndVerify(fin); if (!version.compatibleWith(BCFile.API_VERSION)) { throw new RuntimeException("Incompatible BCFile fileBCFileVersion."); } // read meta index fin.seek(offsetIndexMeta); metaIndex = new MetaIndex(fin); // read data:BCFile.index, the data block index BlockReader blockR = getMetaBlock(DataIndex.BLOCK_NAME); try { dataIndex = new DataIndex(blockR); } finally { blockR.close(); } }
/** * Constructor * * @param fin * FS input stream. * @param fileLength * Length of the corresponding file * @throws IOException */ public Reader(FSDataInputStream fin, long fileLength, Configuration conf) throws IOException { this.in = fin; this.conf = conf; // A reader buffer to read the block baos = new ByteArrayOutputStream(DTFile.getFSInputBufferSize(conf) * 2); this.cacheKeys = new ArrayList<String>(); // move the cursor to the beginning of the tail, containing: offset to the // meta block index, version and magic fin.seek(fileLength - Magic.size() - Version.size() - Long.SIZE / Byte.SIZE); long offsetIndexMeta = fin.readLong(); version = new Version(fin); Magic.readAndVerify(fin); if (!version.compatibleWith(DTBCFile.API_VERSION)) { throw new RuntimeException("Incompatible BCFile fileBCFileVersion."); } // read meta index fin.seek(offsetIndexMeta); metaIndex = new MetaIndex(fin); // read data:BCFile.index, the data block index BlockReader blockR = getMetaBlock(DataIndex.BLOCK_NAME); try { dataIndex = new DataIndex(blockR); } finally { blockR.close(); } }
public TFileMeta(DataInput in) throws IOException { version = new Version(in); if (!version.compatibleWith(DTFile.API_VERSION)) { throw new RuntimeException("Incompatible TFile fileVersion."); } recordCount = Utils.readVLong(in); strComparator = Utils.readString(in); comparator = makeComparator(strComparator); }
public Version getVersion() { return version; }