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. [java基础] 遇到的一个关于返回值泛型的问题

    在写代码的时候这样写: import java.util.ArrayList; import java.util.List; public class TestConversion { public ...

  2. JMeter基础教程3:脚本录制篇

    对于一些JMeter初学者来说,录制脚本可能是最容易掌握的技能之一.虽然我不建议录制性能脚本(因为录制的脚本比较混乱,必须要通过二次处理才可正常使用),但有时做总比不做要好,是吧?下面我们详细介绍使用 ...

  3. 使用cobbler批量安装操作系统(基于Centos7.x )

    1.1 cobbler简介 Cobbler是一个Linux服务器安装的服务,可以通过网络启动(PXE)的方式来快速安装.重装物理服务器和虚拟机,同时还可以管理DHCP,DNS等. Cobbler可以使 ...

  4. CLR设计类型之接口

    写在前面的话:             写到这一节的时候,CLR设计类型就已经结束了,因为CLR要求的是有一定基础的人看的,所以我们不是从基础类型以及运算符开始的,文章从一开始就讲的是深入面向对象编程 ...

  5. OpenTSDB - 分布式可扩展的监控系统

    OpenTSDB - A Distributed, Scalable Monitoring System http://opentsdb.net/getting-started.html http:/ ...

  6. MySQL5.6新特性

    Innodb加强项 1.Innodb全文索引 mysql> show create table film_text\G . row *************************** Tab ...

  7. python变量命名规则

    在Python中使用变量时,需要遵守一些规则和指南.违反这些规则将引发错误,而指南旨在让你编写的代码更容易阅读和理解.请务必牢记下述有关变量的规则.  变量名只能包含字母.数字和下划线.变量名可以字 ...

  8. 浅谈Maven

    最近的有用到Maven 所以就大概跟大家谈一下Maven 1什么是Maven? Maven我个人的理解就是项目架包管理 通俗易懂的来说就是管理配置你项目中的所有jar包的 废话不多说 Maven去ht ...

  9. red5 自定义文件存放目录

    Red5 流媒体服务器 自定义文件存放目录 Red5在正常情况下,安装之后文件必须存放在Red5安装目录下的oflaDemo\streams中,不能自定义存放目录,例如Red5 安装在C盘,但是我的文 ...

  10. cookie 操作(转载)

    /** * Create a cookie with the given name and value and other optional parameters. * * @example $.co ...