Hbase Java API 简介

本章提供有关使用Hbase JAVA API执行操作的示例。 可以快速参考 https://hbase.apache.org/apidocs/index.html 以便得到更详细的信息。

1.使用Java API创建 Table

createTable()方法用于使用java API创建表。示例如下:

import java.io.IOException;
import org.apache.hadoop.hbase.*;
import org.apache.hadoop.conf.Configuration;
public class tablecreate {
public static void main(String[] args) throws IOException {
Configuration c = HBaseConfiguration.create(); // Instantiate configuration class
HBaseAdmin ad = new HBaseAdmin(c);      // Instantiate HbaseAdmin class
// Instantiate table descriptor class
HTableDescriptor tdescriptor = new TableDescriptor(TableName.valueOf("student"));
tdescriptor.addFamily(new HColumnDescriptor("id"));  // Add column families to tdescriptor
 ad.createTable(tdescriptor);   // Execute table using ad
System.out.println(" Table is created "); // It will print “Table is created”
}
}

2.使用java API Disable Table

isTableDisabled()方法用于检查表是否已禁用。 如果禁用表,则返回true,否则返回false。如果表没有被禁用,则使用disableTable()方法。

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.*;
public class TableDisable{
public static void main(String args[]) throws IOException, MasterNotRunningException, {
Configuration c= HBaseConfiguration.create();      // Instantiate configuration class
HBaseAdmin ad = new HBaseAdmin(c);      // Instantiate HBaseAdmin class
Boolean boolean = admin.isTableDisabled("student");      // Verifying weather the table is disabled
System.out.println(boolean);
if(!boolean){
ad.disableTable("student");      // Disabe the table using HBaseAdmin object
System.out.println("Table is disabled"); // It will print “Table is disabled”
}
}
}

3.使用Java API  List Table

使用listTables()方法列举Table。

import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.*;
public class TablesList {
public static void main(String args[])throws IOException, MasterNotRunningException {
Configuration c = HBaseConfiguration.create();      // Instantiate a configuration class
HBaseAdmin ad = new HBaseAdmin(c);   // Instantiate HBaseAdmin class
HTableDescriptor[] tDescriptor = ad.listTables(); //  Give list of tables HBaseAdmin Object
for (int k=0; k<tDescriptor.length;i++ ){
System.out.println(tDescriptor[k].getNameAsString());      // Print all the table names.
}
}
}

4.使用Java API Enable Table

isTableEnabled()方法用于检查表是否已启用。 如果启用了表,则它将返回true,否则返回false。如果未启用表,则使用enableTable()方法。

import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.*;
public class TableEnable{
public static void main(String args[]) throws IOException, MasterNotRunningException,{
Configuration c = HBaseConfiguration.create();      // Instantiate configuration class
HBaseAdmin ad = new HBaseAdmin(c);   // Instantiate HBaseAdmin class
Boolean boolean = ad.isTableEnabled("student");      //check whether the table is enabled
System.out.println(boolean);
if(!boolean){
ad.enableTable("student");
System.out.println("Table is Enabled");     // Enable the table using HBaseAdmin object
}
}
}

5.使用Java API退出HBase

使用shutdown()方法。

import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.*;
public class ShutDownHbase{
public static void main(String args[])throws IOException {
Configuration c = HBaseConfiguration.create();      // Instantiate configuration class
HBaseAdmin ad = new HBaseAdmin(c); // Instantiate HBaseAdmin class
System.out.println("Shut down HBase");   // Shut down HBase
ad.shutdown();
}
}

6.使用Java API添加Column Family

使用addColumn()方法。

import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.*;
public class ColumnAdd{
public static void main(String args[]) throws IOException, MasterNotRunningException{
Configuration c = HBaseConfiguration.create();      // Instantiate configuration class.
HBaseAdmin ad = new HBaseAdmin(c); // Instantiate HBaseAdmin class.
HColumnDescriptor cDescriptor = new HColumnDescriptor("id"); //Instantiate columnDescriptor
ad.addColumn("student", cDescriptor);      // Add column family
System.out.println("coloumn is  added which name is id");
}
}

7.使用Java API删除 Column Family

使用deleteColumn()方法。

import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.*;
public class ColoumnDelete{
public static void main(String args[])throws IOException, MasterNotRunningException,{
Configuration c = HBaseConfiguration.create();      // Instantiate configuration class.
HBaseAdmin ad = new HBaseAdmin(c);      // Instantiate HBaseAdmin class.
ad.deleteColumn("student","id");  // Deleting a column family
System.out.println("coloumn  is deleted which name is id");
}
}

8.使用java API检查表是否存在

通过tableExists()方法完成。

import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.*;
public class TableExists{
public static void main(String args[])throws IOException{
Configuration c = HBaseConfiguration.create();      // Instantiate configuration class
HBaseAdmin ad = new HBaseAdmin(c);      // Instantiate HBaseAdmin class
Boolean boolean = ad.tableExists("student");       // Cheking the existance of the table
System.out.println( boolean);
}
}

9.使用Java API删除表

首先需要Disable 表,然后使用deleteTable()方法删除表。

import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.*;
public class TableDelete {
public static void main(String[] args) throws IOException {
Configuration c = HBaseConfiguration.create();      // Instantiate configuration class
HBaseAdmin ad = new HBaseAdmin(conf);      // Instantiate HBaseAdmin class
ad.disableTable("student");       // disable the table
ad.deleteTable("student");  // Delete the table
System.out.println("Table is deleted which name is student");
}
}

10.使用Java API添加数据

Put()方法用于保存数据,而add()方法用于添加数据。

import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.*;
public class DataInsert{
public static void main(String[] args) throws IOException {
Configuration c = HBaseConfiguration.create(); // Instantiate Configuration class
HTable hTable = new HTable(c, "student");       // Instantiate HTable class
Put P1 = new Put(Bytes.toBytes("row1"));  // Instantiate put Class
// accepts column family name, row name  and its value
P1.add(Bytes.toBytes("college"),   Bytes.toBytes("id"),Bytes.toBytes("20"));
P1.add(Bytes.toBytes("college"),Bytes.toBytes("name"),Bytes.toBytes("rishi"));
hTable.put(P1);
System.out.println("Data is inserted");       // Save the put Instance to the HTable.
hTable.close();      // close HTable
}
}

11.使用Java API删除数据

通过使用delete()方法完成。

import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.*;
public class DataDelete {
public static void main(String[] args) throws IOException {
Configuration c = HBaseConfiguration.create();// Instantiate Configuration class
HTable table = new HTable(c, "student");       // Instantiate HTable class
Delete delete = new Delete(Bytes.toBytes("row1"));       // Instantiating Delete class
delete.deleteColumn(Bytes.toBytes("college"), Bytes.toBytes("id"));
table.delete(delete);        // delete the data
table.close();        // close the HTable object
System.out.println("Data  is deleted");
}
}

12.使用Java API读取数据

通过使用get()方法来完成。

import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.*;
public class DataRead{
public static void main(String[] args) throws IOException {
Configuration c = HBaseConfiguration.create();      // Instantiate Configuration class
HTable table = new HTable(c, "student"); // Instantiate HTable class
Get g = new Get(Bytes.toBytes("row1"));        // Instantiate Get class
Result result = table.get(g);      // Read the data
// Read values from Result class object
byte [] value = result.getValue(Bytes.toBytes("college"),Bytes.toBytes("name"));
String name = Bytes.toString(value);      // Print the values
System.out.println("name: " + name);
}
}

13.使用Java API更新数据

使用put()方法完成。

import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.*;
public class DataUpdate{
public static void main(String[] args) throws IOException {
Configuration c = HBaseConfiguration.create();      // Instantiate Configuration class
HTable hTable = new HTable(c, "student");       // Instantiate HTable class
Put P1 = new Put(Bytes.toBytes("row1"));   // Instantiate Put class
P1.add(Bytes.toBytes("college"),  Bytes.toBytes("name"),Bytes.toBytes("raj")); //update the data
hTable.put(P1);      // Save the put Instance to the HTable.
System.out.println("Data is updated");
hTable.close();      // close HTable
}
}

14.使用Java API SCAN

import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.*;
public class tableScan{
public static void main(String args[]) throws IOException{
Configuration c = HBaseConfiguration.create();        // Instantiate Configuration class
HTable table = new HTable(c, "student");        // Instantiate HTable class
Scan scan = new Scan();      // Instantiate the Scan class
scan.addColumn(Bytes.toBytes("college"), Bytes.toBytes("name"));  // Scan the required columns
ResultScanner scanner = table.getScanner(scan);      // Get scan result
// Reading values from scan result
for (Result result = scanner.next(); result != null; result = scanner.next())
System.out.println("Result Found: " + result);
scanner.close();      //close the scanner
}
}

Hbase Java API 简介

发表评论

邮箱地址不会被公开。 必填项已用*标注

四十 二 − 38 =

滚动到顶部