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. iOS 从实际出发理解多线程

    前言 多线程很多开发者多多少少相信也都有了解,以前有些东西理解的不是很透,慢慢的积累之后,这方面的东西也需要自己好好的总结一下.多线程从我刚接触到iOS的时候就知道这玩意挺重要的,但那时也是能力有限, ...

  2. eclipse中导入jsp等工程使用过程中常遇问题

    1.导入的工程JSP文件出现报错的情况 这个一般不怎么影响文件的执行,这些文件飘红主要是因为eclipse的校验问题. 具体错误信息:Multiple annotations found at thi ...

  3. override和重载的区别

    1.父类:public virtual string ToString(){return "a";}子类:public override string ToString(){ret ...

  4. [转载] Hive与HBase的联系与区别

    转载自http://blog.csdn.net/wangmuming/article/details/23954527和http://www.cnblogs.com/justinzhang/p/427 ...

  5. shopxx--权限功能测试

    shiro权限控制 一.添加角色 1.打开   系统→角色管理,点击 添加 赋予当前角色对应的权限 二.添加管理员(即用户管理) 添加用户,赋予刚才添加的角色 三.用新用户登录,进行测试 登录结果

  6. tomcat集群日志切割和远程备份脚本分享

    笔者一共有3台tomcat服务器,一共4个tomcat服务,未来还会增加4个作为负载,笔者想通过在存储服务器对tomcat服务的日志进行远程切割和备份到存储上. 文中采用清空日志的方式,优点是不用重启 ...

  7. 苹果快速的修复了Mac OS High Sierra 上出现了root的漏洞

    最近苹果因为Mac最新系统 Mac OS High Sierra 上出现了root的漏洞走上了风口浪尖,不过还好,在一封苹果给科技媒体'9to5 Mac'的回复中得知,苹果在接收到报告之后,立即展开修 ...

  8. 基于Flink秒级计算时CPU监控图表数据中断问题

     基于Flink进行秒级计算时,发现监控图表中CPU有数据中断现象,通过一段时间的跟踪定位,该问题目前已得到有效解决,以下是解决思路:   一.问题现象       以SQL02为例,发现本来10秒一 ...

  9. python_day05(去爬登录的豆瓣)

    # 爬豆瓣需要用cookie# 需要注意隐藏的参数,即input 里面的默认的一些参数# 需要自己注册一个账户密码import urllib.requestimport http.cookiejarf ...

  10. java自动生成entity文件

    网上关于自动生成entity文件的代码很多,看了很多代码后,在先辈们的基础上再完善一些功能(指定多个表,全部表). 为了使用方便所以把两个类写在一个java文件中,所以大家可以直接拿这个java文件, ...