JavaAPI开发Hbase

开发HBase应用程序,需要了解以下的内容

1.HBase提供了哪些JAVA API
2.如何使用
3.具体的使用示例

1.HBase提供的JAVA API

HBase提供了对HBase进行一系列的管理涉及到对表的管理、数据的操作Java api。   
常用的API操作有:   
1、  对表的创建、删除、显示以及修改等  
2、  插入数据    
3、  获取数据   
4、  浏览每一行   
5、  删除   
6、  锁   
7、  簇的访问

2.如何使用

使用Java API读取数据的步骤  
第1步:实例化Configuration类  
第2步:实例化类  
第3步:实例化获得类  
第4步:读取数据   
第5步:获取结果  
第6步:从Result实例读值

3.使用示例

(1)说明    
windows下开发HBase应用程序,HBase部署在linux集群环境中
<1>在开发Hbase应用,首先是配置Hbase的设置,对于设置需要了解,了解的途径是通过配置文件,因为我使用的是  
Ambari安装的,所以在其环境下查看配置文件  
<2> Ambari 中一般会设置主机名,而对主机名通常在本机没有设置,所以在调试的过程在运行调试时可能会出现无法找到主机,类似异常信息如下:java.net.UnknownHostException: unknown host: master
master可以是任意名称,例如我的主机名是 unix201,所以报错如:java.net.UnknownHostException: unknown host: unix201    
解决方法:C:\WINDOWS\system32\drivers\etc\hosts文件中添加如下信息,并在cmd环境下更新DNS  
192.0.0.1 master  
更新方式是在cmd 下运行 ipconfig /flushdns  
在设置好Ambari中主机所对应的IP地址以及了解有关的配置后,需要解决包依赖的问题,解决方式是通过Maven来解决。通过配置pom.xml来解决依赖问题。

综上所述,一个全新的环境在设置好JAVA的默认路径,设置好主机以及包依赖问题后,以下程序就可以直接运行了。


2)实现最基本的功能,以查看表是否存在  
import org.apache.hadoop.conf.Configuration;  
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.client.HBaseAdmin;

public class HbaseSave {  
public static void main(String[] args) throws Exception {  
//***根据 Ambari中的内容进行配置
HBASE_CONFIG.set("hbase.master.port","***");
HBASE_CONFIG.set("hbase.zookeeper.quorum","***.***.***.***,***.***.***.***,***.***.***.***");
HBASE_CONFIG.set("hbase.zookeeper.property.clientPort", "***");
HBASE_CONFIG.set("zookeeper.znode.parent","/******");
Configuration configuration = HBaseConfiguration.create(HBASE_CONFIG); 
Connection conn =null;
try{    
    // 建立一个数据库的连接 
     conn = ConnectionFactory.createConnectio(configuration);
    // 创建一个数据库管理员
     HBaseAdmin hBaseAdmin = (HBaseAdmin) conn.getAdmin(); 
    System.out.println( hBaseAdmin.tableExists("my_test"));
    if(hBaseAdmin.tableExists("my_test")){  
        System.out.println("table is exists !");
        conn.close(); 
        System.exit(0);  
        }else{  
        System.out.println("table No exists !");
        System.exit(0); 
        } 
}catch(Exception e){  
         e.printStackTrace();  }
finally{
    if(null!=conn){
        conn.close();
        conn=null;
        }
     }

   }
}

附录:

<1>在调试JAVA程序中,可以多添加几处显示命令,以查看程序的运行状态  
System.out.println( hBaseAdmin.tableExists("my_test"));
<2>以上程序只是功能的展示,具体到实际的生产环境中还需要进一步的修改,有模块分层以及异常处理等工作

blogroll

social