Hbase使用Java API測試表是否存在
阿新 • • 發佈:2018-12-12
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和對應的主機名,這樣才能解析出叢集的主機名