tableDesc.addFamily(newHColumnDescriptor(familys[i]));
}
admin.createTable(tableDesc);
logger.info("createtable"+tableName+"success.");
}
}catch(Exceptione){
logger.info(e.getMessage(),e);
}
}
/**删除表*/
publicstaticvoiddeleteTable(StringtableName){
try{
admin.disableTable(tableName);
admin.deleteTable(tableName);
logger.info("deletetable"+tableName+"success.");
}catch(Exceptione){
logger.info(e.getMessage(),e);
}
}
/**插入一行记录*/
@SuppressWarnings("resource")
publicstaticvoidputRecord(StringtableName,StringrowKey,Stringfamily,Stringqualifier,Stringvalue){
try{
HTabletable=newHTable(configuration,tableName);
Putput=newPut(Bytes.toBytes(rowKey));
put.add(Bytes.toBytes(family),Bytes.toBytes(qualifier),Bytes.toBytes(value));
table.put(put);
logger.info("insertrecored"+rowKey+"totable"+tableName+"success.");
}catch(IOExceptione){
logger.info(e.getMessage(),e);
}
}
/**批量插入记录*/
publicstaticvoidputRecords(StringtableName,Listputs){
HTabletable=null;
try{
table=newHTable(configuration,tableName);
table.put(puts);
}catch(IOExceptione){
logger.info(e.getMessage(),e);
try{
table.flushCommits();
}catch(Exceptione1){
logger.info(e1.getMessage(),e1);
}
}
}
/**删除一行记录*/
@SuppressWarnings("resource")
publicstaticvoiddeleteRecord(StringtableName,String...rowKeys){
try{
HTabletable=newHTable(configuration,tableName);
Listlist=newArrayList();
Deletedelete=null;
for(StringrowKey:
rowKeys){
delete=newDelete(rowKey.getBytes());
list.add(delete);
}
if(list.size()>0){
table.delete(list);
}
logger.info("deleterecoreds"+rowKeys+"success.");
}catch(IOExceptione){
logger.info(e.getMessage(),e);
}
}
/**查找一行记录*/
@SuppressWarnings({"resource"})
publicstaticResultgetRecord(StringtableName,StringrowKey){
try{
HTabletable=newHTable(configuration,tableName);
Getget=newGet(rowKey.getBytes());
get.setMaxVersions();
returntable.get(get);
}catch(IOExceptione){
logger.info(e.getMessage(),e);
}
returnnull;
}
/**查找所有记录*/
@SuppressWarnings({"resource"})
publicstaticResultScannergetRecords(StringtableName){
try{
HTabletable=newHTable(configuration,tableName);
returntable.getScanner(newScan());
}catch(IOExceptione){
logger.info(e.getMessage(),e);
}
returnnull;
}
publicstaticvoidprintRecord(Resultresult){
for(Cellcell:
result.rawCells()){
logger.info("cellrow:
"+newString(cell.getRowArray()));
logger.info("cellfamily:
"+newString(cell.getFamilyArray()));
logger.info("cellqualifier:
"+newString(cell.getQualifierArray()));
logger.info("cellvalue:
"+newString(cell.getValueArray()));
logger.info("celltimestamp:
"+cell.getTimestamp());
}
/**之前版本*/
/**
for(KeyValuekv:
rs.raw()){
System.out.print(newString(kv.getRow())+"");
System.out.print(newString(kv.getFamily())+":
");
System.out.print(newString(kv.getQualifier())+"");
System.out.print(kv.getTimestamp()+"");
System.out.println(newString(kv.getValue()));
}
*/
}
publicstaticvoidprintRecords(ResultScannerresultScanner){
for(Resultresult:
resultScanner){
printRecord(result);
}
}
}
版本:
Hadoop-2.7.2与Hbase-1.2.3
publicclassHBaseUtilsextendsAbstrUtils{
privatestaticHBaseAdminadmin=null;
privatestaticConnectionconnection=null;
static{
try{
ExecutorServicepool=Executors.newCachedThreadPool();
connection=ConnectionFactory.createConnection(configuration,pool);
admin=(HBaseAdmin)connection.getAdmin();
}catch(IOExceptione){
LOG.error(e.getMessage(),e);
}
}
/**创建一张表*/
publicstaticvoidcreatTable(StringtableName,String[]familys){
try{
if(admin.tableExists(tableName)){
LOG.info("table"+tableName+"alreadyexists!
");
}else{
HTableDescriptortableDesc=newHTableDescriptor(TableName.valueOf(tableName));
for(inti=0;itableDesc.addFamily(newHColumnDescriptor(familys[i]));
}
admin.createTable(tableDesc);
LOG.info("createtable"+tableName+"success.");
}
}catch(Exceptione){
LOG.error(e.getMessage(),e);
}
}
/**表注册Coprocessor*/
publicstaticvoidaddTableCoprocessor(StringtableName,StringcoprocessorClassName){
try{
admin.disableTable(tableName);
HTableDescriptorhtd=admin.getTableDescriptor(Bytes.toBytes(tableName));
htd.addCoprocessor(coprocessorClassName);
admin.modifyTable(Bytes.toBytes(tableName),htd);
admin.enableTable(tableName);
}catch(IOExceptione){
LOG.error(e.getMessage(),e);
}
}
/**统计表行数*/
publicstaticlongrowCount(StringtableName){
longrowCount=0;
try{
HTabletable=(HTable)connection.getTable(TableName.valueOf(tableName));
Scanscan=newScan();
//scan.setFilter(newKeyOnlyFilter());
scan.setFilter(newFirstKeyOnlyFilter());
ResultScannerresultScanner=table.getScanner(scan);
for(Resultresult:
resultScanner){
rowCount+=result.size();
}
}catch(IOExceptione){
LOG.error(e.getMessage(),e);
}
returnrowCount;
}
/**插入一行记录*/
publicstaticvoidinsertRecord(StringtableName,StringrowKey,Stringfamily,Stringqualifier,Stringvalue){
try{
HTabletable=(HTable)connection.getTable(TableName.valueOf(tableName));
Putput=newPut(Bytes.toBytes(rowKey));
put.addColumn(Bytes.toBytes(family),Bytes.toBytes(qualifier),Bytes.toBytes(value));
table.put(put);
LOG.info("insertrecored"+rowKey+"totable"+tableName+"success.");
}catch(IOExceptione){
LOG.info(e.getMessage(),e);
}
}
/**批量插入记录*/
publicstaticvoidinsertRecords(StringtableName,Listputs){
HTabletable=null;
try{
table=(HTable)connection.getTable(TableName.valueOf(tableName));
table.put(puts);
}catch(IOExceptione){
LOG.info(e.getMessage(),e);
try{
table.flushCommits();
}catch(Exceptione1){
LOG.info(e1.getMessage(),e1);
}
}
}
/**删除一行记录*/
publicstaticvoiddeleteRecord(StringtableName,String...rowKeys){
try{
HTabletable=(HTable)connection.getTable(TableName.valueOf(tableName));
Listlist=newArrayList();
Deletedelete=null;
for(StringrowKey:
rowKeys){
delete=newDelete(rowKey.getBytes());
list.add(delete);
}
if(list.size()>0){
table.delete(list);
}
LOG.info("deleterecoreds"+rowKeys+"success.");
}catch(IOExceptione){
LOG.error(e.getMessage(),e);
}
}
/**删除一个列族*/
publicstaticvoiddeleteFamily(StringtableName,StringcolumnName){
try{
admin.deleteColumn(tableName,columnName);
}catch(Exceptione){
LOG.error(e.getMessage(),e);
}
}
/**删除表*/
publicstaticvoiddeleteTable(StringtableName){
try{
admin.disableTable(tableName);
admin.deleteTable(tableName);
LOG.info("deletetable"+tableName+"success.");
}catch(Exceptione){
LOG.error(e.getMessage(),e);
}
}
/**查找一行记录*/
publicstaticResultgetRecord(StringtableName,StringrowKey){
try{
HTabletable=(HTable)connection.getTable(TableName.valueOf(tableName));
Getget=newGet(rowKey.getBytes());
get.setMaxVersions();
returntable.get(get);
}catch(IOExceptione){
LOG.error(e.getMessage(),e);
}
returnnull;
}
/**查找所有记录*/
publicstaticResultScannergetRecords(StringtableName){
returngetRecords(tableName,null,null,null,null,null);
}
/**查找所有记录*/
publicstaticResultScannergetRecords(StringtableName,Stringfamily){
returngetRecords(tableName,family,null,null,null,null);
}
/**查找所有记录*/
publicstatic