java实现hbase表创建、数据插入、删除表

标签: Hadoop | 发表时间:2012-03-08 23:52 | 作者:jrckkyy
出处:http://hi.baidu.com/jrckkyy

近日查看了相关资料后,梳理了一下用java实现hbase的表创建、数据插入、删除表,代码如下:

1、需要的jar包:

commons-codec-1.4.jar

commons-logging-1.0.4.jar

hadoop-0.20.2-core.jar

hbase-0.20.6.jar

log4j-1.2.15.jar

zookeeper-3.2.2.jar

 

2、代码:

[java:nogutter] view plain copy print ?
  1. package org.myhbase;  
  2.   
  3. import java.io.IOException;  
  4.   
  5. import org.apache.hadoop.conf.Configuration;  
  6. import org.apache.hadoop.hbase.HBaseConfiguration;  
  7. import org.apache.hadoop.hbase.HColumnDescriptor;  
  8. import org.apache.hadoop.hbase.HTableDescriptor;  
  9. import org.apache.hadoop.hbase.KeyValue;  
  10. import org.apache.hadoop.hbase.client.HBaseAdmin;  
  11. import org.apache.hadoop.hbase.client.HTable;  
  12. import org.apache.hadoop.hbase.client.Result;  
  13. import org.apache.hadoop.hbase.client.ResultScanner;  
  14. import org.apache.hadoop.hbase.client.Scan;  
  15. import org.apache.hadoop.hbase.io.BatchUpdate;  
  16.   
  17. public class HBaseBasic02 {  
  18.     static HBaseConfiguration hbaseConfig=null;  
  19.     static{  
  20.         Configuration config=new Configuration();  
  21.         config.set("hbase.zookeeper.quorum","192.168.10.149,192.168.10.44,192.168.10.49");  
  22.         config.set("hbase.zookeeper.property.clientPort", "2181");  
  23.         hbaseConfig=new HBaseConfiguration(config);  
  24.     }  
  25.       
  26.     /** 
  27.      * 创建一张表 
  28.      * @throws IOException  
  29.      */  
  30.     public static void createTable(String tablename) throws IOException{  
  31.         HBaseAdmin admin = new HBaseAdmin(hbaseConfig);  
  32.         if(admin.tableExists(tablename)){  
  33.             System.out.println("table Exists!!!");  
  34.         }else{  
  35.             HTableDescriptor tableDesc = new HTableDescriptor(tablename);  
  36.             tableDesc.addFamily(new HColumnDescriptor("name:"));  
  37.             admin.createTable(tableDesc);  
  38.             System.out.println("create table ok.");  
  39.         }  
  40.     }  
  41.       
  42.     /** 
  43.      * 删除一张表 
  44.      * @throws IOException  
  45.      */  
  46.     public static void dropTable(String tablename) throws IOException{  
  47.         HBaseAdmin admin = new HBaseAdmin(hbaseConfig);  
  48.         admin.disableTable(tablename);  
  49.         admin.deleteTable(tablename);  
  50.         System.out.println("drop table ok.");  
  51.     }  
  52.       
  53.       
  54.     /** 
  55.      * 添加一条数据 
  56.      * @throws IOException  
  57.      */  
  58.     public static void addData(String tablename) throws IOException{  
  59.         HTable table=new HTable(hbaseConfig,tablename);  
  60.         BatchUpdate update=new BatchUpdate("Huangyi");  
  61.         update.put("name:java","http://www.sun.com".getBytes());  
  62.         table.commit(update);  
  63.         System.out.println("add data ok.");  
  64.     }  
  65.       
  66.       
  67.     /** 
  68.      * 显示所有数据 
  69.      * @throws IOException  
  70.      */  
  71.     public static void getAllData(String tablename) throws IOException{  
  72.         HTable table=new HTable(hbaseConfig,tablename);  
  73.         Scan s=new Scan();  
  74.         ResultScanner rs=table.getScanner(s);  
  75.         for(Result r:rs){  
  76.             for(KeyValue kv:r.raw()){  
  77.                 System.out.println("rowkey : "+new String(kv.getRow()));  
  78.                 System.out.println(new String(kv.getColumn())+" = "+new String(kv.getValue()));  
  79.             }  
  80.         }  
  81.     }  
  82.       
  83.     public static void main(String [] args) throws IOException{  
  84.             String tablename="table_1";  
  85.             HBaseBasic02.createTable(tablename);  
  86.             HBaseBasic02.addData(tablename);  
  87.             HBaseBasic02.getAllData(tablename);  
  88.             HBaseBasic02.dropTable(tablename);  
  89.     }  
  90.       
  91.       
  92. }  

阅读全文
类别: Hadoop  查看评论

相关 [java hbase 数据] 推荐:

JAVA操作HBASE数据操作详解

- -
Hbase对于建表,和RDBMS类似,HBase也有namespace的概念,可以指定表空间创建表,也可以直接创建表,进入default表空间. 对于数据操作,HBase支持四类主要的数据操作,分别是:. Put :增加一行,修改一行;. Delete :删除一行,删除指定列族,删除指定column的多个版本,删除指定column的制定版本等;.

java实现hbase表创建、数据插入、删除表

- - 学着站在巨人的肩膀上
近日查看了相关资料后,梳理了一下用java实现hbase的表创建、数据插入、删除表,代码如下:. 类别: Hadoop  查看评论.

HBASE数据架构

- - 数据库 - ITeye博客
关系数据库一般用B+树,HBASE用的是LSM树. MYSQL所用类B+树一般深度不超过3层,数据单独存放,在B+树的叶节点存储指向实际数据的指针,叶节点之间也相互关联,类似双向链表. 这种结构的特点是数据更新或写入导致数据页表分散,不利于顺序访问. LSM存储中,各个文件的结构类似于B+树,但是分多个存在内存或磁盘中,更新和写入变成了磁盘的顺序写,只在合并时去掉重复或过时的数据.

JAVA操作Hbase基础例子

- - CSDN博客云计算推荐文章
        创建一张表.         写入一条数据.         写入一组数据.         //查询出一条数据.         删除一张表.         清空一张表.      * 写入一组数据.      * 获得一组Put.      * 组装一个Put.      * 查询出一条数据.

hbase写数据过程

- - 数据库 - ITeye博客
博文说明:1、研究版本hbase0.94.12;2、贴出的源代码可能会有删减,只保留关键的代码. 从client和server两个方面探讨hbase的写数据过程.     写数据主要是HTable的单条写和批量写两个API,源码如下:. hbase写数据的客户端核心方法是HConnectionManager的processBatchCallback方法,相关源码如下:.

HBase数据查询之Coprocessor

- - 开源软件 - ITeye博客
协处理器的概念、作用和类型不介绍,可以参看:http://www.cnblogs.com/ventlam/archive/2012/10/30/2747024.html,官方blog:https://blogs.apache.org/hbase/entry/coprocessor_introduction.

从hbase(hive)将数据导出到mysql

- - CSDN博客云计算推荐文章
在上一篇文章《 用sqoop进行mysql和hdfs系统间的数据互导》中,提到sqoop可以让RDBMS和HDFS之间互导数据,并且也支持从mysql中导入到HBase,但从HBase直接导入mysql则不是直接支持,而是间接支持. 要么将HBase导出到HDFS平面文件,要么将其导出到Hive中,再导出到mysql.

通过HBase Observer同步数据到ElasticSearch

- - SegmentFault 最新的文章
Observer希望解决的问题. HBase是一个分布式的存储体系,数据按照RowKey分成不同的Region,再分配给RegionServer管理. 但是RegionServer只承担了存储的功能,如果Region能拥有一部分的计算能力,从而实现一个HBase框架上的MapReduce,那HBase的操作性能将进一步提升.

HBase基本数据操作详解

- - 互联网 - ITeye博客
之前详细写了一篇HBase过滤器的文章,今天把基础的表和数据相关操作补上. 本文档 参考最新 (截止2014年7月16日)的 官方 Ref Guide、 Developer API编写. 所有代码均基于“hbase  0.96.2-hadoop2 ”版本编写,均实测通过. 对于建表,和RDBMS类似,HBase也有namespace的概念,可以指定表空间创建表,也可以直接创建表,进入default表空间.

Windows7+Eclipse环境下Hbase Java客户端的开发

- - zzm
Centos 下Hbase0.98.10-hadoop2 集群的配置. 在Eclipse中创建Maven的工程. 将集群的hbase-site.xml文件放到工程的classes目录下. C:\windows\system32\drivers\etc文件,将Hbase集群的IP以及域名配置到该文件中.