HBase1.0.1基本操作(java代码)
来源:互联网 发布:java 超级打码 编辑:程序博客网 时间:2024/06/16 20:14
public class HQuery {
private static ConnHBase connHbase=new ConnHBase();
/***************建表****************************/
public void creatTable(String TBname,String...colFamily) throws Exception {
TableName tableName = TableName.valueOf(TBname);// 获得表名称
/*表描述器*/
HTableDescriptor tableDesc = new HTableDescriptor(tableName);
for(String cols:colFamily){
tableDesc.addFamily(new HColumnDescriptor(cols));// 添加列族
}
/*创建管理员*/
Admin admin = connHbase.getConnect().getAdmin();
/*创建一个表*/
admin.createTable(tableDesc);
}
/***************插入和更新数据****************************/
public void createCell(String tableName,String colFamily,String rowKey,String column,String value) throws IOException {
Table table = connHbase.getConnect().getTable(TableName.valueOf(tableName));//表实例
HColumnDescriptor[] columnFamilies = table.getTableDescriptor().getColumnFamilies();//获取表中全部的列族
/*插入器*/
Put put = new Put(Bytes.toBytes(rowKey));// 设置行号,RowKey
/*遍历列族,找到匹配的列族*/
for (int i = 0; i < columnFamilies.length; i++) {
String familyName = columnFamilies[i].getNameAsString(); // 获取列族名
// 如果是指定列族
if (familyName.equals(colFamily)) {
put.addColumn(Bytes.toBytes(familyName), Bytes.toBytes(column), Bytes.toBytes(value));// 写入
}
}
table.put(put); // 运行写入
}
/************查询单元格数据***********/
public List<Cell> getRow(String tableName,String rowKey) throws IOException {
Table table = connHbase.getConnect().getTable(TableName.valueOf(tableName));//表实例
Get get = new Get(Bytes.toBytes(rowKey));//查询指定行
Result result = table.get(get);//执行查询
List<Cell> listCells = result.listCells();//指定行、全部列族的全部列
/*遍历单元格*/
/* for (Cell cell : listCells) {
System.out.println("列 族:" + Bytes.toString(CellUtil.cloneFamily(cell)));
System.out.println("列 名:" + Bytes.toString(CellUtil.cloneQualifier(cell)));
System.out.println("列 值:" + Bytes.toString(CellUtil.cloneValue(cell)));
System.out.println("时间戳:" + cell.getTimestamp());
list.add(cell)
}*/
return listCells;
}
/***********全表扫描************/
public List<Cell> scanTable(String tableName) throws IOException {
List<Cell> cells=null;
Table table = connHbase.getConnect().getTable(TableName.valueOf(tableName));//表实例
ResultScanner resultScanner = table.getScanner(new Scan()); //针对全表的查询器
java.util.Iterator<Result> results = resultScanner.iterator();// 结果迭代器
while(results.hasNext()) {
Result result = results.next();
cells = result.listCells();
/* for(Cell cell : cells) {
System.out.println("列 族:" + Bytes.toString(CellUtil.cloneFamily(cell)));
System.out.println("列 名:" + Bytes.toString(CellUtil.cloneQualifier(cell)));
System.out.println("列 值:" + Bytes.toString(CellUtil.cloneValue(cell)));
System.out.println("时间戳:" + cell.getTimestamp() + "\n------------------");
}*/
}
Scan scan =new Scan();
resultScanner.close();// 关闭资源
return cells;
}
/*********删除单元格*********/
public void deleteCell(String colFamily ,String column ,String rowKey ,String tableName) throws IOException {
Table table = connHbase.getConnect().getTable(TableName.valueOf(tableName));//表实例
Delete del = new Delete(Bytes.toBytes(rowKey));// 操作指定行键的删除器
del.addColumn(Bytes.toBytes(colFamily), Bytes.toBytes(column));// 指定列族的列
table.delete(del);// 执行删除
}
/*********删除指定行***************/
public void deleteRow(String tableName,String rowKey) throws IOException {
Table table = connHbase.getConnect().getTable(TableName.valueOf(tableName));//表实例
Delete deleterow = new Delete(Bytes.toBytes(rowKey));
table.delete(deleterow);
}
/***********删除表**************/
public void deleteTable(String tableName ) throws IOException {
Admin admin = connHbase.getConnect().getAdmin();
admin.disableTable(TableName.valueOf(tableName)); // 关闭表
admin.deleteTable(TableName.valueOf(tableName));//删除表
}
}
private static ConnHBase connHbase=new ConnHBase();
/***************建表****************************/
public void creatTable(String TBname,String...colFamily) throws Exception {
TableName tableName = TableName.valueOf(TBname);// 获得表名称
/*表描述器*/
HTableDescriptor tableDesc = new HTableDescriptor(tableName);
for(String cols:colFamily){
tableDesc.addFamily(new HColumnDescriptor(cols));// 添加列族
}
/*创建管理员*/
Admin admin = connHbase.getConnect().getAdmin();
/*创建一个表*/
admin.createTable(tableDesc);
}
/***************插入和更新数据****************************/
public void createCell(String tableName,String colFamily,String rowKey,String column,String value) throws IOException {
Table table = connHbase.getConnect().getTable(TableName.valueOf(tableName));//表实例
HColumnDescriptor[] columnFamilies = table.getTableDescriptor().getColumnFamilies();//获取表中全部的列族
/*插入器*/
Put put = new Put(Bytes.toBytes(rowKey));// 设置行号,RowKey
/*遍历列族,找到匹配的列族*/
for (int i = 0; i < columnFamilies.length; i++) {
String familyName = columnFamilies[i].getNameAsString(); // 获取列族名
// 如果是指定列族
if (familyName.equals(colFamily)) {
put.addColumn(Bytes.toBytes(familyName), Bytes.toBytes(column), Bytes.toBytes(value));// 写入
}
}
table.put(put); // 运行写入
}
/************查询单元格数据***********/
public List<Cell> getRow(String tableName,String rowKey) throws IOException {
Table table = connHbase.getConnect().getTable(TableName.valueOf(tableName));//表实例
Get get = new Get(Bytes.toBytes(rowKey));//查询指定行
Result result = table.get(get);//执行查询
List<Cell> listCells = result.listCells();//指定行、全部列族的全部列
/*遍历单元格*/
/* for (Cell cell : listCells) {
System.out.println("列 族:" + Bytes.toString(CellUtil.cloneFamily(cell)));
System.out.println("列 名:" + Bytes.toString(CellUtil.cloneQualifier(cell)));
System.out.println("列 值:" + Bytes.toString(CellUtil.cloneValue(cell)));
System.out.println("时间戳:" + cell.getTimestamp());
list.add(cell)
}*/
return listCells;
}
/***********全表扫描************/
public List<Cell> scanTable(String tableName) throws IOException {
List<Cell> cells=null;
Table table = connHbase.getConnect().getTable(TableName.valueOf(tableName));//表实例
ResultScanner resultScanner = table.getScanner(new Scan()); //针对全表的查询器
java.util.Iterator<Result> results = resultScanner.iterator();// 结果迭代器
while(results.hasNext()) {
Result result = results.next();
cells = result.listCells();
/* for(Cell cell : cells) {
System.out.println("列 族:" + Bytes.toString(CellUtil.cloneFamily(cell)));
System.out.println("列 名:" + Bytes.toString(CellUtil.cloneQualifier(cell)));
System.out.println("列 值:" + Bytes.toString(CellUtil.cloneValue(cell)));
System.out.println("时间戳:" + cell.getTimestamp() + "\n------------------");
}*/
}
Scan scan =new Scan();
resultScanner.close();// 关闭资源
return cells;
}
/*********删除单元格*********/
public void deleteCell(String colFamily ,String column ,String rowKey ,String tableName) throws IOException {
Table table = connHbase.getConnect().getTable(TableName.valueOf(tableName));//表实例
Delete del = new Delete(Bytes.toBytes(rowKey));// 操作指定行键的删除器
del.addColumn(Bytes.toBytes(colFamily), Bytes.toBytes(column));// 指定列族的列
table.delete(del);// 执行删除
}
/*********删除指定行***************/
public void deleteRow(String tableName,String rowKey) throws IOException {
Table table = connHbase.getConnect().getTable(TableName.valueOf(tableName));//表实例
Delete deleterow = new Delete(Bytes.toBytes(rowKey));
table.delete(deleterow);
}
/***********删除表**************/
public void deleteTable(String tableName ) throws IOException {
Admin admin = connHbase.getConnect().getAdmin();
admin.disableTable(TableName.valueOf(tableName)); // 关闭表
admin.deleteTable(TableName.valueOf(tableName));//删除表
}
}
0 0
- HBase1.0.1基本操作(java代码)
- 【Hbase】Hbase1.2.4在hadoop2.7.3中的可执行java代码
- Java代码实现列队基本操作
- java连接hbase1.2.6
- HBase1.0.x JAVA 实例
- HBase1.0+ java-api 介绍
- JAVA 连接 Hbase1.2.3查询
- 单链表的基本操作(代码优化)
- 二叉排序树的基本操作(完整代码)
- java操作redis集群(基本操作)
- C++控制台操作(基本操作的代码)
- C++控制台操作(基本操作的代码)
- HBase1.0.0源码分析之请求处理流程分析以Put操作为例(一)
- HBase1.0.0源码分析之请求处理流程分析以Put操作为例(二)
- HBase1.2.4新版api操作示例
- HBase1.2.4新版本API 操作实例
- java注解的基本操作(java注解用代码的基本实现)
- 代码基本操作 -- 读写文件
- 动态加载
- 素数打表法。
- HDU 1014 Uniform Generator (水题_格式控制)
- HDU1711-Number Sequence-KMP算法(模板)
- 快速排序,归并排序,堆排序的java代码实现
- HBase1.0.1基本操作(java代码)
- hdu 2523SORT AGAIN
- 自定义cell及其使用
- UITableView 的编辑
- 深挖BAT内部级别和薪资待遇,你敢看?
- python爬虫2
- 简单多图片上传 jquery+java 代码
- hdu5371 Hotaru's problem manachar回文串算法+枚举
- 黑马程序员——java复习总结——集合框架