如何使用scala api在hbase中列出表htabledescriptor已弃用

yebdmbv4  于 2021-05-27  发布在  Hadoop
关注(0)|答案(0)|浏览(323)

我使用scalaapi来使用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)
    }
  }
}

用什么,怎么用,谢谢你的时间。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题