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、代码:
- package org.myhbase;
-
- import java.io.IOException;
-
- import org.apache.hadoop.conf.Configuration;
- import org.apache.hadoop.hbase.HBaseConfiguration;
- import org.apache.hadoop.hbase.HColumnDescriptor;
- import org.apache.hadoop.hbase.HTableDescriptor;
- import org.apache.hadoop.hbase.KeyValue;
- import org.apache.hadoop.hbase.client.HBaseAdmin;
- import org.apache.hadoop.hbase.client.HTable;
- import org.apache.hadoop.hbase.client.Result;
- import org.apache.hadoop.hbase.client.ResultScanner;
- import org.apache.hadoop.hbase.client.Scan;
- import org.apache.hadoop.hbase.io.BatchUpdate;
-
- public class HBaseBasic02 {
- static HBaseConfiguration hbaseConfig=null;
- static{
- Configuration config=new Configuration();
- config.set("hbase.zookeeper.quorum","192.168.10.149,192.168.10.44,192.168.10.49");
- config.set("hbase.zookeeper.property.clientPort", "2181");
- hbaseConfig=new HBaseConfiguration(config);
- }
-
- /**
- * 创建一张表
- * @throws IOException
- */
- public static void createTable(String tablename) throws IOException{
- HBaseAdmin admin = new HBaseAdmin(hbaseConfig);
- if(admin.tableExists(tablename)){
- System.out.println("table Exists!!!");
- }else{
- HTableDescriptor tableDesc = new HTableDescriptor(tablename);
- tableDesc.addFamily(new HColumnDescriptor("name:"));
- admin.createTable(tableDesc);
- System.out.println("create table ok.");
- }
- }
-
- /**
- * 删除一张表
- * @throws IOException
- */
- public static void dropTable(String tablename) throws IOException{
- HBaseAdmin admin = new HBaseAdmin(hbaseConfig);
- admin.disableTable(tablename);
- admin.deleteTable(tablename);
- System.out.println("drop table ok.");
- }
-
-
- /**
- * 添加一条数据
- * @throws IOException
- */
- public static void addData(String tablename) throws IOException{
- HTable table=new HTable(hbaseConfig,tablename);
- BatchUpdate update=new BatchUpdate("Huangyi");
- update.put("name:java","http://www.sun.com".getBytes());
- table.commit(update);
- System.out.println("add data ok.");
- }
-
-
- /**
- * 显示所有数据
- * @throws IOException
- */
- public static void getAllData(String tablename) throws IOException{
- HTable table=new HTable(hbaseConfig,tablename);
- Scan s=new Scan();
- ResultScanner rs=table.getScanner(s);
- for(Result r:rs){
- for(KeyValue kv:r.raw()){
- System.out.println("rowkey : "+new String(kv.getRow()));
- System.out.println(new String(kv.getColumn())+" = "+new String(kv.getValue()));
- }
- }
- }
-
- public static void main(String [] args) throws IOException{
- String tablename="table_1";
- HBaseBasic02.createTable(tablename);
- HBaseBasic02.addData(tablename);
- HBaseBasic02.getAllData(tablename);
- HBaseBasic02.dropTable(tablename);
- }
-
-
- }
阅读全文
类别: Hadoop 查看评论 相关 [java hbase 数据] 推荐:
- -
Hbase对于建表,和RDBMS类似,HBase也有namespace的概念,可以指定表空间创建表,也可以直接创建表,进入default表空间. 对于数据操作,HBase支持四类主要的数据操作,分别是:. Put :增加一行,修改一行;. Delete :删除一行,删除指定列族,删除指定column的多个版本,删除指定column的制定版本等;.
- - 学着站在巨人的肩膀上
近日查看了相关资料后,梳理了一下用java实现hbase的表创建、数据插入、删除表,代码如下:. 类别: Hadoop 查看评论.
- - 数据库 - ITeye博客
关系数据库一般用B+树,HBASE用的是LSM树. MYSQL所用类B+树一般深度不超过3层,数据单独存放,在B+树的叶节点存储指向实际数据的指针,叶节点之间也相互关联,类似双向链表. 这种结构的特点是数据更新或写入导致数据页表分散,不利于顺序访问. LSM存储中,各个文件的结构类似于B+树,但是分多个存在内存或磁盘中,更新和写入变成了磁盘的顺序写,只在合并时去掉重复或过时的数据.
- - CSDN博客云计算推荐文章
创建一张表. 写入一条数据. 写入一组数据. //查询出一条数据. 删除一张表. 清空一张表. * 写入一组数据. * 获得一组Put. * 组装一个Put. * 查询出一条数据.
- - 数据库 - ITeye博客
博文说明:1、研究版本hbase0.94.12;2、贴出的源代码可能会有删减,只保留关键的代码. 从client和server两个方面探讨hbase的写数据过程. 写数据主要是HTable的单条写和批量写两个API,源码如下:. hbase写数据的客户端核心方法是HConnectionManager的processBatchCallback方法,相关源码如下:.
- - 开源软件 - ITeye博客
协处理器的概念、作用和类型不介绍,可以参看:http://www.cnblogs.com/ventlam/archive/2012/10/30/2747024.html,官方blog:https://blogs.apache.org/hbase/entry/coprocessor_introduction.
- - CSDN博客云计算推荐文章
在上一篇文章《 用sqoop进行mysql和hdfs系统间的数据互导》中,提到sqoop可以让RDBMS和HDFS之间互导数据,并且也支持从mysql中导入到HBase,但从HBase直接导入mysql则不是直接支持,而是间接支持. 要么将HBase导出到HDFS平面文件,要么将其导出到Hive中,再导出到mysql.
- - SegmentFault 最新的文章
Observer希望解决的问题. HBase是一个分布式的存储体系,数据按照RowKey分成不同的Region,再分配给RegionServer管理. 但是RegionServer只承担了存储的功能,如果Region能拥有一部分的计算能力,从而实现一个HBase框架上的MapReduce,那HBase的操作性能将进一步提升.
- - 互联网 - ITeye博客
之前详细写了一篇HBase过滤器的文章,今天把基础的表和数据相关操作补上. 本文档 参考最新 (截止2014年7月16日)的 官方 Ref Guide、 Developer API编写. 所有代码均基于“hbase 0.96.2-hadoop2 ”版本编写,均实测通过. 对于建表,和RDBMS类似,HBase也有namespace的概念,可以指定表空间创建表,也可以直接创建表,进入default表空间.
- - zzm
Centos 下Hbase0.98.10-hadoop2 集群的配置. 在Eclipse中创建Maven的工程. 将集群的hbase-site.xml文件放到工程的classes目录下. C:\windows\system32\drivers\etc文件,将Hbase集群的IP以及域名配置到该文件中.