HBase1.0.1基本操作(java代码)
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));//删除表
}
}
HBase1.0.1基本操作(java代码)的更多相关文章
- mongodb3.0分片及java代码连接操作测试(开启用户验证)
最近抽时间搭建了一下mongodb简单的分片,整个过程还算是蛮顺利,只不过在用户验证这一块遇到了一些问题,好在最后终于搞定. 一.服务器搭建过程: 1.安装四个mongodb:一个作为config.一 ...
- 使用mongo-java-driver3.0.2.jar和mongodb3.0在java代码中的用户验证4
以下是使用mongo-java-driver3.0.2.jar和mongodb3.0.4在java代码中的用户验证: ServerAddress sa = new ServerAddress(host ...
- 从 Java 代码逆向工程生成 UML 类图和序列图
from:http://blog.itpub.net/14780914/viewspace-588975/ 本文面向于那些软件架构师,设计师和开发人员,他们想使用 IBM® Rational® Sof ...
- 论坛源码推荐(11.6):iPhone6/6 plus屏幕适配Demo,Java代码转Objective-C
http://www.cocoachina.com/ios/20141106/10153.html iPhone6/6 plus 屏幕适配Demo(代码底层处理)(论坛会员satian)htt 该项目 ...
- 【转】使用JavaParser获得Java代码中的类名、方法形参列表中的参数名以及统计总的文件个数与不能解析的文件个数
遍历目录查找Java文件: public static void ergodicDir(File dir, HashSet<String> argNameSet, HashSet<S ...
- BAE3.0上的java+tomcat代码发布
---------------------------------2016/01/25更新-------------------------------------- 最近两天去百度开放云,发现它再也 ...
- 阿里官方Java代码规范标准《阿里巴巴Java开发手册 终极版 v1.3.0》
终极版 v1.3.0 2017年开春之际,阿里诚意献上重磅大礼:<阿里巴巴Java开发手册>,首次公开阿里官方Java代码规范标准.这套Java统一规范标准将有助于提高行业编码规范化水平, ...
- jwt 0.9.0(三)jwt客户端存储状态可行性分析,及Java代码案例
Jwt客户端存储状态可行性分析 1.前端首次访问后台,后台生成token,放在http header的Authorization里(官网推荐,可解决跨域cookie跨域问题),并且Authorizat ...
- StarUML3.1.0版(2019.3.6)生成Java代码
下载官网 StarUML3.1.0(2019.3.6) 步骤 打开StarUML: 点击菜单栏的Tools: 列表中如果有Java,说明已经有这个生成Java代码的扩展了: 列表里如果没有Java: ...
随机推荐
- Celery 源码解析四: 定时任务的实现
在系列中的第二篇我们已经看过了 Celery 中的执行引擎是如何执行任务的,并且在第三篇中也介绍了任务的对象,但是,目前我们看到的都是被动的任务执行,也就是说目前执行的任务都是第三方调用发送过来的.可 ...
- (二)springboot整合thymeleaf模板
在我们平时的开发中,用了很久的jsp作view显示层,但是标签库和JSP缺乏良好格式的一个副作用就是它很少能够与其产生的HTML类似.所以,在Web浏览器或HTML编辑器中查看未经渲染的JSP模板是非 ...
- C# 4.0 新特性dynamic、可选参数、命名参数等
1.dynamic ExpandoObject熟悉js的朋友都知道js可以这么写 : 1 var t = new Object(); 2 t.Abc = ‘something’; 3 t.Valu ...
- JAVA学习摘要
JAVA关键字 JAVA数据类型 数据类型的使用实例 JAVA注释的使用 使用文档注释时还可以使用 javadoc 标记,生成更详细的文档信息: @author 标明开发该类模块的作者 @versio ...
- 初识Redux-Saga
Redus-saga是一个redux的中间件,主要用来简便而优雅的处理redux应用里的副作用(side effect相对于pure function这类概念而言的).它之所以可以做到这一点主要是使用 ...
- 从事务角度粗窥架构的可扩展性和可维护性:内容整理自java web轻量级开发面试教程
大家多少了解过架构,也听说过使用架构后,代码和可维护性和重用性能大大提升.这里我们来通过一些关于事务的实例,来感性地体会下架构带来的在可维护性方面的便利.本文来是从 java web轻量级开发面试教程 ...
- File I/O
File I/O Introduction We'll start our discussion of the UNIX System by describing the functions ...
- javascript第三章--引用类型
① Object类型 ② Array类型 ③ Date类型 ④ RegExp类型 ⑤ Function类型 ⑥ 基本包装类型 ⑦ 单体内置对象
- java历史概述
java简介Java是由Sun Microsystems公司于 1995年5月推出的Java面向对象程序设计语言(以下简称Java语言)和Java平台的总称.由James Gosling和同事们共同研 ...
- (二)部署solr7.1.0到tomcat
solr7.1.0部署到tomcat8 官方表示solr5之后的版本不再提供对第三方容器的支持(不提供war包了). "旧式"solr.xml格式不再支持,核心必须使用core.p ...