用过以后,总得写个总结,不然,就忘喽。

一、寻找操作的jar包。

java操作hbase,首先要考虑到使用hbase的jar包。

因为咱装的是CDH5,比较方便,使用SecureCRT工具,远程连接到你安装的那台服务器上。

jar包的存放位置在/opt/cloudera/parcels/CDH/lib/hbase,找到,下载下来。

在当前路径下,有一个lib包,里面是支持hbase的hadoop的jar包,根据需求,可以下载下来。

二、找一个API文档当成手册,哪里不会查哪里

百度分享,http://pan.baidu.com/s/1jICqdgy,可以下载。

三、java操作Hbase。

构造函数:

public static Configuration configuration;
static{
configuration = HBaseConfiguration.create();
configuration.set("hbase.master","ip1:60000");
configuration.set("hbase.zookeeper.quorum", "ip1:2181,ip2:2181") ;
}

1、如何创建一个hbase表并put数据。

public static void creaTable(String tablename) throws Exception{
HBaseAdmin admin = new HBaseAdmin(configuration);
if(admin.tableExists(tablename)){
admin.disableTable(tablename);
admin.deleteTable(tablename);
System.out.println("开始创建表!");
}
System.out.println("新的表正在创建中!!!");
HTableDescriptor tableDescriptor = new HTableDescriptor(tablename);
tableDescriptor.addFamily(new HColumnDescriptor("cf1"));
admin.createTable(tableDescriptor); Put put = new Put("123".getBytes());
put.add("cf1".getBytes(), "colum1".getBytes(), "value1".getBytes()) ;
put.add("cf1".getBytes(), "colum2".getBytes(), "value2".getBytes()) ;
put.add("cf1".getBytes(), "colum3".getBytes(), "value3".getBytes()) ; Put put2 = new Put("234".getBytes()) ;
put2.add("cf1".getBytes(), "colum1".getBytes(), "value1".getBytes()) ;
put2.add("cf1".getBytes(), "colum2".getBytes(), "value2".getBytes()) ;
put2.add("cf1".getBytes(), "colum3".getBytes(), "value3".getBytes()) ; HTable table = new HTable(configuration, tablename);
table.put(put);
table.put(put2);
}

2、删除hbase中的table里面的rowkey

 public static void deleteRow(String tableName,String rowKey) throws Exception{
HTable hTable = new HTable(configuration,tableName);
Delete delete = new Delete(rowKey.getBytes());
List<Delete> list = new ArrayList<Delete>();
list.add(delete);
hTable.delete(list);
}

3、查询row = rowKey的数据

 /**
* 查询row = rowKey的数据
* @param tableName
* @param rowKey
* @throws Exception
*/
public static void getRow(String tableName,String rowKey) throws Exception{
HTable hTable = new HTable(configuration, tableName);
Get get = new Get(rowKey.getBytes());
Result result = hTable.get(get);
for(KeyValue value:result.raw()){
System.out.println("cf:"+new String(value.getFamily())+new String(value.getQualifier())+"="+new String(value.getValue()));
}
}

4、查询rowkey在startRow和endRow之间的数据,及rowkey的范围查询

   Put、Delete与Get对象都是Row的子类,从该继承关系中我们就可以了解到Get、Delete与Pu对象本身就只能进行单行的操作,

     HBase客户端还提供了一套能够进行全表扫描的API,方便用户能够快速对整张表进行扫描,以获取想要的结果---scan、

 /**
* 查询rowkey在startRow和endRow之间的数据
* @param tablename
* @param startRow
* @param endRow
* @throws Exception
*/
public static void getBetweenRow(String tableName,String startRow,String stopRow) throws Exception{
HTable table = new HTable(configuration, tableName);
Scan scan = new Scan();
scan.addColumn("cf1".getBytes(), "colum1".getBytes());
scan.addColumn("cf1".getBytes(), "colum2".getBytes());
scan.addColumn("cf1".getBytes(), "colum3".getBytes()); scan.setStartRow(startRow.getBytes());
scan.setStopRow(stopRow.getBytes()); ResultScanner scanner = table.getScanner(scan); for(Result result:scanner){
for(KeyValue value:result.raw()){
System.out.println("cf:"+new String(value.getFamily())+new String(value.getQualifier())+"="+new String(value.getValue()));
}
}
}

  

Java操作hbase总结的更多相关文章

  1. Hbase深入学习(六) Java操作HBase

    Hbase深入学习(六) ―― Java操作HBase 本文讲述如何用hbase shell命令和hbase java api对hbase服务器进行操作. 先看以下读取一行记录hbase是如何进行工作 ...

  2. java操作Hbase实例

    所用HBase版本为1.1.2,hadoop版本为2.4 /* * 创建一个students表,并进行相关操作 */ import java.io.IOException; import java.u ...

  3. 错误: 找不到或无法加载主类 java操作hbase出错

    用java操作hbase 利用maven引入hbase包后发现无法启动程序,然后网上说是包的冲突. 我引入了下面三个包然后程序就不能运行了. <dependency> <groupI ...

  4. Java 操作 HBase 教程

    Java 操作 HBase 教程 一.简介 二.hbase-client 引入 三.连接操作 四.表操作 五.运行测试 相关博文原文地址: 博客园:美码师:HBase(2) Java 操作 HBase ...

  5. 【hbase】——Java操作Hbase进行建表、删表以及对数据进行增删改查,条件查询

    1.搭建环境 新建JAVA项目,添加的包有: 有关Hadoop的hadoop-core-0.20.204.0.jar 有关Hbase的hbase-0.90.4.jar.hbase-0.90.4-tes ...

  6. (转)Java操作Hbase进行建表、删表以及对数据进行增删改查,条件查询

    1.搭建环境 新建JAVA项目,添加的包有: 有关Hadoop的hadoop-core-0.20.204.0.jar 有关Hbase的hbase-0.90.4.jar.hbase-0.90.4-tes ...

  7. Java操作Hbase进行建表、删表以及对数据进行增删改查,条件查询

    1.搭建环境 新建JAVA项目,添加的包有: 有关Hadoop的hadoop-core-0.20.204.0.jar 有关Hbase的hbase-0.90.4.jar.hbase-0.90.4-tes ...

  8. HBase篇--HBase操作Api和Java操作Hbase相关Api

    一.前述. Hbase shell启动命令窗口,然后再Hbase shell中对应的api命令如下. 二.说明 Hbase shell中删除键是空格+Ctrl键. 三.代码 1.封装所有的API pa ...

  9. HBASE学习d端口master:16010(java操作hbase)https://www.cnblogs.com/junrong624/p/7323483.html

    HBase提示已创建表,但是list查询时,却显示表不存在. https://blog.csdn.net/liu16659/article/details/80216085 下载网址 http://a ...

随机推荐

  1. 2016年QS亚洲大学排行榜

    2016年QS亚洲大学排行榜 人民网北京6月14日电 (记者 郝孟佳)今天,全球高等教育分析机构QS全球教育集团发布了2016年QS亚洲大学排名.清华大学在亚洲20强大学中进步最大,比去年提升6名,上 ...

  2. View转化为bitmap

    private Bitmap getViewBitmap(View v) { v.clearFocus(); v.setPressed(false); boolean willNotCache = v ...

  3. (转载)javascript客户端生成MD5值的函数代码

    (转载)http://www.jb51.net/article/26223.htm 用js实现的客户端即可实现md5值的代码,一般情况下都是后台语言才有的,客户端也有了,方便有需要的朋友了. 测试代码 ...

  4. Delphi 调试WEBService程序(ISAPI或CGI) 把Web App Debugger executable转换成 ISAPI/NSAPI

      1.新建一个web工程,请选中最下面一项:Web App Debugger executable,Coclass name我们设为demo1: 2.在弹出的WebModule2中右击,在弹出的Ac ...

  5. HDOJ 1995 汉诺塔V

    Problem Description 用1,2,-,n表示n个盘子,称为1号盘,2号盘,-.号数大盘子就大.经典的汉诺塔问 题经常作为一个递归的经典例题存在.可能有人并不知道汉诺塔问题的典故.汉诺塔 ...

  6. NOI题库7624 山区建小学(162:Post Office / IOI2000 POST OFFICE [input] )

    7624:山区建小学 Description 政府在某山区修建了一条道路,恰好穿越总共m个村庄的每个村庄一次,没有回路或交叉,任意两个村庄只能通过这条路来往.已知任意两个相邻的村庄之间的距离为di(为 ...

  7. Bzoj 1696: [Usaco2007 Feb]Building A New Barn新牛舍 中位数,数学

    1696: [Usaco2007 Feb]Building A New Barn新牛舍 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 394  Solve ...

  8. ITU-R BT.656 协议

    ITU-R BT.601和ITU-R BT.656国际电信联盟(International Telecommunication Union)无线通信部门(ITU-R)制定的标准.严格来说,ITU-R ...

  9. Snake - SGU 128(构造多边形)

    题目大意:有N个点,如果可以使用这N个点连接,连接的时候任意两条边要成直角,任意边都要平行于x轴或者y轴,并且不能出现跨立相交,最终组成一个闭合的多边形,求出来这个多边形的最小长度. 分析:容易证明这 ...

  10. 用Seam实现:图片上传 + 保存到数据库 + 从数据库读出图片并显示到页面中

    上传图片并保存到数据库 seam给我们提供了 s:fileUpload 标签以完成文件上传功能.使用该标签时,要在web.xml中声明一个Seam的过滤器: <filter> <fi ...