HBase1.0.1.1 API与原来有所不同
2015-08-13 23:58
351 查看
packagecom.felix.hbaseapi_test; /* 这是旧版的API操作 */ publicclasshbaseapifelix{ publicstaticfinalStringTABLE_NAME="testapi"; publicstaticfinalStringCOLUMNFAMILY_NAME="cf"; publicstaticfinalStringROW_KEY="rowkey1"; publicstaticvoidmain(String[]args)throwsException{ Configurationconf=HBaseConfiguration.create(); HBaseAdminadmin=newHBaseAdmin(conf); createtable(admin); HTablehtable=newHTable(conf,TABLE_NAME); put(htable,"age","25"); put(htable,"age","26"); put(htable,"age","27"); put(htable,"age","28"); //Get Getget=newGet(ROW_KEY.getBytes()); htable.get(get); //scan Scanscan=newScan(); ResultScannerscanner=htable.getScanner(scan); } privatestaticvoidput(HTablehtable,Stringcolumn,Stringvalue)throwsIOException{ Putput=newPut(ROW_KEY.getBytes()); put.addColumn(COLUMNFAMILY_NAME.getBytes(),column.getBytes(),value.getBytes()); htable.put(put); } privatestaticvoidcreatetable(HBaseAdminadmin)throwsIOException{ HTableDescriptordesc=newHTableDescriptor(TABLE_NAME); HColumnDescriptorfamily=newHColumnDescriptor(COLUMNFAMILY_NAME); desc.addFamily(family); family.setMaxVersions(3); if(!admin.tableExists(TABLE_NAME)){ //该表不存在,直接创建 admin.createTable(desc); }else{ //该表存在,删除后再创建 if(!admin.isTableAvailable(TABLE_NAME)){ //该表disable,直接删除 admin.deleteTable(TABLE_NAME); }else{ //该表enable,先disable,再删除 admin.disableTable(TABLE_NAME); admin.deleteTable(TABLE_NAME); } admin.createTable(desc); } } }
packagecom.felix.hbaseapi_test;
importjava.io.IOException;
importorg.apache.hadoop.conf.Configuration;
importorg.apache.hadoop.hbase.HBaseConfiguration;
importorg.apache.hadoop.hbase.HColumnDescriptor;
importorg.apache.hadoop.hbase.HTableDescriptor;
importorg.apache.hadoop.hbase.TableName;
importorg.apache.hadoop.hbase.client.Admin;
importorg.apache.hadoop.hbase.client.Connection;
importorg.apache.hadoop.hbase.client.ConnectionFactory;
importorg.apache.hadoop.hbase.client.Get;
importorg.apache.hadoop.hbase.client.Put;
importorg.apache.hadoop.hbase.client.Result;
importorg.apache.hadoop.hbase.client.ResultScanner;
importorg.apache.hadoop.hbase.client.Scan;
importorg.apache.hadoop.hbase.client.Table;
publicclasshbaseapifelix{
publicstaticfinalStringTABLE_NAME="testapi";
publicstaticfinalStringCOLUMNFAMILY_NAME="cf";
publicstaticfinalStringROW_KEY="rowkey1";
publicstaticvoidmain(String[]args)throwsException{
Configurationconf=HBaseConfiguration.create();
//下面的配置,在configuration文件中都配置过了这里没必要配置,也不方便
//conf.set("hbase.rootdir","hdfs://centos:9000/hbase");
//conf.set("hbase.zookeeper.quorum","centos");
//conf.set("hbase.zookeeper.property.clientPort","2181");
Connectionconnection=ConnectionFactory.createConnection(conf);
Adminadmin=connection.getAdmin();
Tabletable=connection.getTable(TableName.valueOf("user"));
TableNamename=table.getName();
initBeforeCreate(admin,name);
createTable(admin,table);
try{
Putput=newPut("rowkey".getBytes());
put.addColumn(COLUMNFAMILY_NAME.getBytes(),"age".getBytes(),"25".getBytes());
put.addColumn(COLUMNFAMILY_NAME.getBytes(),"age".getBytes(),"26".getBytes());
put.addColumn(COLUMNFAMILY_NAME.getBytes(),"age".getBytes(),"27".getBytes());
put.addColumn(COLUMNFAMILY_NAME.getBytes(),"age".getBytes(),"28".getBytes());
table.put(put);
}finally{
table.close();
connection.close();
}
Getget=newGet(ROW_KEY.getBytes());
Resultresult=table.get(get);
Scanscan=newScan();
ResultScannerscanner=table.getScanner(scan);
/*HBaseAdminadmin=newHBaseAdmin(conf);
createtable(admin);
HTablehtable=newHTable(conf,TABLE_NAME);
put(htable,"age","25");
put(htable,"age","26");
put(htable,"age","27");
put(htable,"age","28");
//Get
Getget=newGet(ROW_KEY.getBytes());
htable.get(get);
//scan
Scanscan=newScan();
ResultScannerscanner=htable.getScanner(scan);*/
}
privatestaticvoidinitBeforeCreate(Adminadmin,TableNamename)
throwsIOException{
/*创建前存在就删除
**/
if(admin.tableExists(name)){
if(admin.isTableEnabled(name)){
admin.disableTable(name);
}
admin.deleteTable(name);
}
}
privatestaticvoidcreateTable(Adminadmin,Tabletable)
throwsIOException{
HTableDescriptordesc=newHTableDescriptor(table.getName());
HColumnDescriptorfamily=newHColumnDescriptor(COLUMNFAMILY_NAME);
family.setMaxVersions(3);
family.setMinVersions(0);
desc.addFamily(family);
admin.createTable(desc);
}
/*privatestaticvoidput(HTablehtable,Stringcolumn,Stringvalue)throwsIOException{
Putput=newPut(ROW_KEY.getBytes());
put.addColumn(COLUMNFAMILY_NAME.getBytes(),column.getBytes(),value.getBytes());
htable.put(put);
}
privatestaticvoidcreatetable(HBaseAdminadmin)throwsIOException{
HTableDescriptordesc=newHTableDescriptor(TABLE_NAME);
HColumnDescriptorfamily=newHColumnDescriptor(COLUMNFAMILY_NAME);
desc.addFamily(family);
family.setMaxVersions(3);
if(!admin.tableExists(TABLE_NAME)){
//该表不存在,直接创建
admin.createTable(desc);
}else{
//该表存在,删除后再创建
if(!admin.isTableAvailable(TABLE_NAME)){
//该表disable,直接删除
admin.deleteTable(TABLE_NAME);
}else{
//该表enable,先disable,再删除
admin.disableTable(TABLE_NAME);
admin.deleteTable(TABLE_NAME);
}
admin.createTable(desc);
}
}*/
}
具体改成什么了,以及为什么修改,源码里面说的很清楚,比如:
HBaseAdminisnolongeraclientAPI.ItismarkedInterfaceAudience.Privateindicatingthat
*thisisanHBase-internalclassasdefinedin
*
*changeorgoawaywithoutdeprecation.
*Use{@linkConnection#getAdmin()}toobtainaninstanceof{@linkAdmin}insteadofconstructing
*anHBaseAdmindirectly.
其他的自己关联源码自己看吧!
相关文章推荐
- 如何使用Cocos2d-x 3.0制作基于tilemap的游戏:第三部分(完)
- i = i++为什么会是i原来的值??
- Objective-C中的方法重载与初始化方法
- JAVA编写的一个简单的Socket实现的HTTP响应服务器
- Unity 打印信息
- Unity5 AssetBundle管理
- 利用bulk insert指令来将csv文件导入SQL Server
- LeetCode241——Different Ways to Add Parentheses
- springMVC页面通过问号传值乱码问题解决
- gateway & data management
- 2.9 Model Selection and the Bias–Variance Tradeoff
- leetcode Contains Duplicate II python
- Android
- AVA编写的使用Socket模拟Http的GET操作
- leetcode Contains Duplicate python
- ubuntu install scrapy
- C++ const
- C语言函数理解
- 第85讲:Scala中For表达式的强大表现力实战
- 【Ex2013】【虚拟目录】owa虚拟目录创建失败