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. 使用dynamic特性处理XML文档

    处理XML文档是我们经常需要进行的一项工作,尤其是在进行网络服务相关编程时,比如更新RSS等.在.NET 3.5中引入了Linq To XML,使得XML文档的读写已经大大简化,而.NET 4.0中最 ...

  2. c#基础知识索引器

    代码 ]);    }} 在这里我们看到,无非是实现了一个泛型算法 等同于 Ontology List<string> lit=new List<string>(); lis. ...

  3. [转载] Comet:基于 HTTP 长连接的“服务器推”技术

    转载自http://www.ibm.com/developerworks/cn/web/wa-lo-comet/ “服务器推”技术的应用 传统模式的 Web 系统以客户端发出请求.服务器端响应的方式工 ...

  4. shell的逻辑运算符

    一.逻辑运算符 逻辑卷标 表示意思 1. 关于档案与目录的侦测逻辑卷标! -f 常用!侦测『档案』是否存在 eg: if [ -f filename ] -d 常用!侦测『目录』是否存在 -b 侦测是 ...

  5. Nginx+Tomcat+Redis实现持久会话

    使用开源web应用solo blog进行项目演示.前端使用Nginx作为负载均衡器,后端Tomcat连接Redis实现session存储.Redis的特点就是可以将session持久化.样才能真正实现 ...

  6. [贪心][高精]P1080 国王游戏(整合)

    题目描述 恰逢 H 国国庆,国王邀请 n 位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右手上面分别写下一个整数,国王自己也在左.右手上各写一个整数.然后,让这 n 位大臣排成一排,国王站在队伍的最 ...

  7. ligerUI---ListBox(列表框可移动)

    写在前面: 对于可移动的列表框,ligerui中也对其进行了封装,可以直接照着demo拿来用,不过那都是直接在页面上静态初始化的数据,那么如何从后台获取? 前面有了对ligerui的一些组件的使用经验 ...

  8. androidStudio 中 gradle 常用功能

    1. gradle 使用 svn 当前版本信息. def getSvnRevision() { new ByteArrayOutputStream().withStream { os -> de ...

  9. C# winform 程序开发知识点总结(干货)

    1.数据库连接及操作 在说数据库操作之前,先说一下数据库连接操作字符串的获取 首先,点击服务器资源管理器,接下来选中数据连接右键点击添加连接,填入你要连接的服务器名称,点击单选框使用SQL Serve ...

  10. Less循环

    Less循环 在Less中,mixin可以调用它自身.通过这种递归调用,再结合Guard表达式和模式匹配,就可以写出各种循环结构.如,使用循环来创建一个网格类: .generate-columns(4 ...