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. scroll 区域滚动

    网页内都有快速滚动和回弹的效果: overflow: scroll; -webkit-overflow-scrolling: touch;   实际上,Safari用了原生控件来实现,对于有-webk ...

  2. [原创]Faster R-CNN论文翻译

    Faster R-CNN论文翻译   Faster R-CNN是互怼完了的好基友一起合作出来的巅峰之作,本文翻译的比例比较小,主要因为本paper是前述paper的一个简单改进,方法清晰,想法自然.什 ...

  3. 谷歌浏览器Chrome播放rtsp视频流解决方案

    找半天,HTML5的可以支持RTMP 但是无法播放RTSP,flash也止步于RTMP,最后同事推荐了个开源的好东东 VLC ,请教谷歌大神之后,这货果然可以用来让各浏览器(IE activex方式, ...

  4. w3wp.exe已附加有调试器,但没有该调试器配置为调试此未经处理的异常,若要调试此异常,必须分离当前的调试器。

    之前通过使用VS2010附加进程调试项目后,今天开机发现调试本机的项目报错如下图: 到网上到处查看无果,经过反复实验找到解决方法,我的项目是发布到IIS的 1.首先删除IIS上面的项目 2.在VS右击 ...

  5. 机器学习之Logistic 回归算法

    1 Logistic 回归算法的原理 1.1 需要的数学基础 我在看机器学习实战时对其中的代码非常费解,说好的利用偏导数求最值怎么代码中没有体现啊,就一个简单的式子:θ= θ - α Σ [( hθ( ...

  6. Git提交到github上

    1.本地创建一个目录redis [guosong@etch171 mars171 redis]# pwd /data1/guosong/code/redis [guosong@etch171 mars ...

  7. java多线程系列(九)---ArrayBlockingQueue源码分析

    java多线程系列(九)---ArrayBlockingQueue源码分析 目录 认识cpu.核心与线程 java多线程系列(一)之java多线程技能 java多线程系列(二)之对象变量的并发访问 j ...

  8. linux如何在日志中查找关键字、前几行、结尾几行

    如何使用命令行快速查看项目日志是每个开发人员必备技能,尤其在没有专门日志搜集系统的情况下,想要知道目前项目运行状态最好的办法就是打开log日志一瞅即明白. 复杂的到用时再查不晚,但是简单的还是有必要掌 ...

  9. 编程语言的基础——搞定JavaIO

    关键字:IO基础,JUnit生命周期,字节流,字符流,字符编码,对象流,序列化,反序列化 Java I/O 流是一组有顺序的,有起点和终点的字节集合.是对设备文件间数据传输的总称和抽象. 在IO中涉及 ...

  10. C#开发Windows窗体应用程序的步骤

    使用C#开发应用程序时,一般包括创建项目.界面设计.设置属性.编写程序代码.保存项目.程序运行等6个步骤. 1.创建项目 在Visual Studio2017开发环境中选择“文件”→“新建”→“项目” ...