开发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>以上程序只是功能的展示,具体到实际的生产环境中还需要进一步的修改,有模块分层以及异常处理等工作