Как составить список таблиц в HBase, используя Scala API? | HTableDescriptor устарел - PullRequest
0 голосов
/ 15 января 2020

Я использую Scala API для использования HBase.

Я создал таблицу emp в HBase со следующим кодом:


import org.apache.hadoop.hbase.HBaseConfiguration
import org.apache.hadoop.hbase.client.{ColumnFamilyDescriptorBuilder, HBaseAdmin, TableDescriptor, TableDescriptorBuilder}
import org.apache.hadoop.hbase.TableName
import org.apache.hadoop.conf.Configuration

object CreateTable {

  def main(args: Array[String]): Unit = {
    // Instantiating configuration class
    val con: Configuration = HBaseConfiguration.create()
    // Instantiating HbaseAdmin class
    val admin: HBaseAdmin = new HBaseAdmin(con)
    // Instantiating table descriptor class
    val tableDescriptor: TableDescriptor = TableDescriptorBuilder
      .newBuilder(TableName.valueOf("emp"))
      .setColumnFamily(ColumnFamilyDescriptorBuilder.newBuilder("personal".getBytes).build())
      .setColumnFamily(ColumnFamilyDescriptorBuilder.newBuilder("professional".getBytes).build())
      .build()
    admin.createTable(tableDescriptor)
    println(" Table created ")
  }
}

pom.xml имеет следующие зависимости:

    <dependencies>
        <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-core -->
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-core_2.11</artifactId>
            <version>2.3.0</version>
            <scope>provided</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-sql -->
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-sql_2.11</artifactId>
            <version>2.3.0</version>
            <scope>provided</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.hbase/hbase -->
        <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase</artifactId>
            <version>2.0.2</version>
            <type>pom</type>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.hbase/hbase-client -->
        <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase-client</artifactId>
            <version>2.0.2</version>
        </dependency>
    </dependencies>

Я использую этот код для перечисления таблиц в HBase, но HtableDescriptor является устаревшим методом:

import org.apache.hadoop.conf.Configuration
import org.apache.hadoop.hbase.HBaseConfiguration
import org.apache.hadoop.hbase.HTableDescriptor
import org.apache.hadoop.hbase.client.HBaseAdmin

object ListTable {

  def main(args: Array[String]): Unit = {
    // Instantiating configuration class
    val con: Configuration = HBaseConfiguration.create()
    // Instantiating HbaseAdmin class
    val admin: HBaseAdmin = new HBaseAdmin(con)
    // Getting all the list of tables using HBaseAdmin object
    val tableDescriptor: Array[HTableDescriptor] = admin.listTables()
    for (i <- 0 until tableDescriptor.length) {
      println(tableDescriptor(i).getNameAsString)
    }
  }
}

Что использовать, Как использовать, Спасибо за ваше время.

...