1. 程式人生 > >Hbase使用Java API測試表是否存在

Hbase使用Java API測試表是否存在

1.建立Maven工程,新增pom.xml和配置檔案

pom.xml

  <dependencies>
<dependency>
  <groupId>org.apache.hbase</groupId>
  <artifactId>hbase-server</artifactId>
  <version>1.3.1</version>
</dependency>
<dependency>
  <groupId>org.apache.hbase</groupId>
  <artifactId>hbase-client</artifactId>
  <version>1.3.1</version>
</dependency>
  </dependencies>

配置檔案:    因為Hbase要依賴於Hadoop和Zookeeper,所以需要相應的配置檔案

Hadoop中的core-site.xml,hdfs-site.xml,log4j.properties

Hbase中的hbase-site.xml

這些配置檔案在叢集中都可以找到,然後複製到專案的resources目錄下,專案結構如下圖所示

2.測試表是否存在程式碼

package cn.ysjh;

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.client.HBaseAdmin;



public class HbaseTest {

	public static Configuration conf;
	static{
	//使用 HBaseConfiguration 的單例方法例項化
	conf = HBaseConfiguration.create();
	}
	
	//判斷表是否存在
	public static boolean isTableExist(String tableName) throws IOException {
	//在 HBase 中管理、訪問表需要先建立 HBaseAdmin 物件
	Connection connection = ConnectionFactory.createConnection(conf);
	Admin admin=connection.getAdmin();
	return admin.tableExists(TableName.valueOf(tableName));
	}
	
	
	public static void main(String[] args) throws IOException {
		
			System.out.println(isTableExist("aaa"));
		
	}
}

然後開啟Hbase叢集,進行測試

注意:    這裡直接執行程式碼會報不能解析主機名的錯,應該在宿主機的hosts檔案中加上叢集機器的ip和對應的主機名,這樣才能解析出叢集的主機名