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代码)的更多相关文章

  1. mongodb3.0分片及java代码连接操作测试(开启用户验证)

    最近抽时间搭建了一下mongodb简单的分片,整个过程还算是蛮顺利,只不过在用户验证这一块遇到了一些问题,好在最后终于搞定. 一.服务器搭建过程: 1.安装四个mongodb:一个作为config.一 ...

  2. 使用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 ...

  3. 从 Java 代码逆向工程生成 UML 类图和序列图

    from:http://blog.itpub.net/14780914/viewspace-588975/ 本文面向于那些软件架构师,设计师和开发人员,他们想使用 IBM® Rational® Sof ...

  4. 论坛源码推荐(11.6):iPhone6/6 plus屏幕适配Demo,Java代码转Objective-C

    http://www.cocoachina.com/ios/20141106/10153.html iPhone6/6 plus 屏幕适配Demo(代码底层处理)(论坛会员satian)htt 该项目 ...

  5. 【转】使用JavaParser获得Java代码中的类名、方法形参列表中的参数名以及统计总的文件个数与不能解析的文件个数

    遍历目录查找Java文件: public static void ergodicDir(File dir, HashSet<String> argNameSet, HashSet<S ...

  6. BAE3.0上的java+tomcat代码发布

    ---------------------------------2016/01/25更新-------------------------------------- 最近两天去百度开放云,发现它再也 ...

  7. 阿里官方Java代码规范标准《阿里巴巴Java开发手册 终极版 v1.3.0》

    终极版 v1.3.0 2017年开春之际,阿里诚意献上重磅大礼:<阿里巴巴Java开发手册>,首次公开阿里官方Java代码规范标准.这套Java统一规范标准将有助于提高行业编码规范化水平, ...

  8. jwt 0.9.0(三)jwt客户端存储状态可行性分析,及Java代码案例

    Jwt客户端存储状态可行性分析 1.前端首次访问后台,后台生成token,放在http header的Authorization里(官网推荐,可解决跨域cookie跨域问题),并且Authorizat ...

  9. StarUML3.1.0版(2019.3.6)生成Java代码

    下载官网 StarUML3.1.0(2019.3.6) 步骤 打开StarUML: 点击菜单栏的Tools: 列表中如果有Java,说明已经有这个生成Java代码的扩展了: 列表里如果没有Java: ...

随机推荐

  1. css 3d

    Perspective  透视点,视角,CSS3D 的透视点在浏览器前方 默认值为none,是作用于子元素,指定观察者与z=0平面的距离,使具有三维位置变换的元素产生透视效果.z>0的三维元素比 ...

  2. word中表格第一列序号的设置

    表格中序号问题 1.新建一个表格.第一列选择编号后,编号后有tab,如下图 2.选中表格的编号,点击新建列表样式, 3.将编号后的字符改成nothing,在将单元格改成居中即可 4.在将单元格改成居中 ...

  3. C#中消息的工作流程

    C#中的消息被Application类从应用程序消息队列中取出,然后分发到消息对应的窗体,窗体对象的第一个响应函数是对象中的protected override void WndProc(ref Sy ...

  4. C# 处理Word自动生成报告 一、概述

    经常遇到这样的需求, 生成Word格式的报告, 而不是单纯的一张表格的报表.  就像体检报告一样. 数据来源部分决定采用一个存储过程返回Dataset的方式, 整张报告的数据来源于此Dataset的多 ...

  5. AndroidStudio中各种常见快捷键记录

    AndroidStudio中各种常用操作快捷键记录 简单方法 直接设置AS的快捷键与eclipse相同,方便直接从eclipse切到AS的人. 常用的AS的默认快捷键 ctrl + N 根据类名查找J ...

  6. margin、padding单位百分比

    年前做了一个测试题 https://www.wenjuan.com/s/VjaEva/,里面有一道题目涉及到了margin和padding单位为百分比的情况.写出来记录一下以防止自己忘记. <! ...

  7. ThinkPHP中的Model模型

    一     实例化模型对象 ①实例化通用模型 例:$goods_model = new \Model\GoodsModel(); $goods_Model = D('Goods'); ②实例化基例模型 ...

  8. FreeRTOS--堆内存管理

    因为项目需要,最近开始学习FreeRTOS,一开始有些紧张,因为两个星期之前对于FreeRTOS的熟悉度几乎为零,经过对FreeRTOS官网的例子程序的摸索,和项目中问题的解决,遇到了很多熟悉的身影, ...

  9. 数据库sql语句总结

    1) select 字段名 from 表名 group by 字段名(或是多个字段名,中间用逗号隔开) having count(*)>1:查询表中某一(某几个)字段内的重复数据 Oracle: ...

  10. ACM个人零散知识点整理

    ACM个人零散知识点整理 杂项: 1.输入输出外挂 //读入优化 int 整数 inline int read(){ int x=0,f=1; char ch=getchar(); while(ch& ...