Java Code Examples for org.apache.hadoop.hbase.client.TableDescriptorBuilder#parseFrom()

The following examples show how to use org.apache.hadoop.hbase.client.TableDescriptorBuilder#parseFrom() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: FSTableDescriptors.java    From hbase with Apache License 2.0 6 votes vote down vote up
private static TableDescriptor readTableDescriptor(FileSystem fs, FileStatus status)
    throws IOException {
  int len = Ints.checkedCast(status.getLen());
  byte [] content = new byte[len];
  FSDataInputStream fsDataInputStream = fs.open(status.getPath());
  try {
    fsDataInputStream.readFully(content);
  } finally {
    fsDataInputStream.close();
  }
  TableDescriptor htd = null;
  try {
    htd = TableDescriptorBuilder.parseFrom(content);
  } catch (DeserializationException e) {
    throw new IOException("content=" + Bytes.toShort(content), e);
  }
  return htd;
}
 
Example 2
Source File: TestFSTableDescriptors.java    From hbase with Apache License 2.0 6 votes vote down vote up
@Test public void testReadingOldHTDFromFS() throws IOException, DeserializationException {
  final String name = this.name.getMethodName();
  FileSystem fs = FileSystem.get(UTIL.getConfiguration());
  Path rootdir = UTIL.getDataTestDir(name);
  FSTableDescriptors fstd = new FSTableDescriptors(fs, rootdir);
  TableDescriptor htd = TableDescriptorBuilder.newBuilder(TableName.valueOf(name)).build();
  Path descriptorFile = fstd.updateTableDescriptor(htd);
  try (FSDataOutputStream out = fs.create(descriptorFile, true)) {
    out.write(TableDescriptorBuilder.toByteArray(htd));
  }
  FSTableDescriptors fstd2 = new FSTableDescriptors(fs, rootdir);
  TableDescriptor td2 = fstd2.get(htd.getTableName());
  assertEquals(htd, td2);
  FileStatus descriptorFile2 =
      FSTableDescriptors.getTableInfoPath(fs, fstd2.getTableDir(htd.getTableName()));
  byte[] buffer = TableDescriptorBuilder.toByteArray(htd);
  try (FSDataInputStream in = fs.open(descriptorFile2.getPath())) {
    in.readFully(buffer);
  }
  TableDescriptor td3 = TableDescriptorBuilder.parseFrom(buffer);
  assertEquals(htd, td3);
}
 
Example 3
Source File: HTableDescriptor.java    From hbase with Apache License 2.0 5 votes vote down vote up
/**
 * @param bytes A pb serialized {@link HTableDescriptor} instance with pb magic prefix
 * @return An instance of {@link HTableDescriptor} made from <code>bytes</code>
 * @throws DeserializationException
 * @throws IOException
 * @see #toByteArray()
 */
public static HTableDescriptor parseFrom(final byte [] bytes)
throws DeserializationException, IOException {
  TableDescriptor desc = TableDescriptorBuilder.parseFrom(bytes);
  if (desc instanceof ModifyableTableDescriptor) {
    return new HTableDescriptor((ModifyableTableDescriptor) desc);
  } else {
    return new HTableDescriptor(desc);
  }
}