hbase java 获取表大小_HBase Java API使用(一)

前言

1. 创建表:(由master完成)

首先需要获取master地址(master启动时会将地址告诉zookeeper)因而客户端首先会访问zookeeper获取master的地址

client和master通信,然后有master来创建表(包括表的列簇,是否cache,设置存储的最大版本数,是否压缩等)。

2. 读写删除数据

client与regionserver通信,读写、删除数据

写入和删除数据时讲数据打上不同的标志append,真正的数据删除操作在compact时发生

3. 版本信息

7237f3343d72a7bb529caa867911b739.png

API基础知识

CRUD操作:

put:插入单行或者多行

get: 读取数据或者使用scan()

delete:删除数据

batch(): 批量处理操作

scan:

类似于数据库中的游标cursor

HTable常用方法:

void close(): 用完一个HTable实例后需要调用一次close(),(这个方法会隐式的调用flushCache方法)

byte[] getTableName() 获取表名

Configuration getConfiguration(): 获取HTable实例中的配置

HTableDescriptor getTableDescriptor(): 获取表的结构

static boolean isTableEnabled(table): 查看表是否禁用

configuration

HbaseConfiguration, 表示HBase的配置信息

两种构造函数如下:

public HBaseConfiguration() -----------默认的构造方式会从hbase-default.xml和hbase-site.xml中读取配置,如果classpath中没有这两个文件,需要自己配置

public HBaseConfiguration(final Configuration c)

eg:

static Configuration cfg =HBaseConfiguration.create();static{

cfg.set("hbase.zookeeper.quorum", "192.168.1.95");

cfg.set("hbase.zookeeper.property.clientPort", "2181");

}

注意: new HBaseConfiguration()方式已经启用,不建议使用下面方式。

static HBaseConfiguration cfg = null;

static {

Configuration HBASE_CONFIG = new Configuration();

HBASE_CONFIG.set("hbase.zookeeper.quorum", "192.168.1.95");

HBASE_CONFIG.set("hbase.zookeeper.property.clientPort", "2181");

cfg = new HBaseConfiguration(HBASE_CONFIG);

}

创建表

使用HBaseAdmin对象的createTable方法

eg:

public static voidcreateTable(String tableName) {

System.out.println("************start create table**********");try{

HBaseAdmin hBaseAdmin= newHBaseAdmin(cfg);if (hBaseAdmin.tableExists(tableName)) {//如果存在要创建的表,那么先删除,再创建

hBaseAdmin.disableTable(tableName);

hBaseAdmin.deleteTable(tableName);

System.out.println(tableName+ " is exist");

}

HTableDescriptor tableDescriptor= new HTableDescriptor(tableName);//代表表的schema

tableDescriptor.addFamily(new HColumnDescriptor("name")); //增加列簇

tableDescriptor.addFamily(new HColumnDescriptor("age"));

tableDescriptor.addFamily(new HColumnDescriptor("gender"));

hBaseAdmin.createTable(tableDescriptor);

}catch(MasterNotRunningException e) {

e.printStackTrace();

}catch(ZooKeeperConnectionException e) {

e.printStackTrace();

}catch(IOException e) {

e.printStackTrace();

}

System.out.println("*****end create table*************");

}

public static voidmain(String[] agrs) {try{

String tablename= "wishTest";

HBaseTest.createTable(tablename);

}catch(Exception e) {

e.printStackTrace();

}

}

日志信息如下:

************start create table**********

14/05/18 14:14:22 INFO zookeeper.ZooKeeper: Client environment:zookeeper.version=3.4.5-1392090, built on 09/30/2012 17:52 GMT

14/05/18 14:14:22 INFO zookeeper.ZooKeeper: Client environment:host.name=LJ-PC

14/05/18 14:14:22 INFO zookeeper.ZooKeeper: Client environment:java.version=1.6.0_11

14/05/18 14:14:22 INFO zookeeper.ZooKeeper: Client environment:java.vendor=Sun Microsystems Inc.

14/05/18 14:14:22 INFO zookeeper.ZooKeeper: Client environment:java.home=D:\java\jdk1.6.0_11\jre

14/05/18 14:14:22 INFO zookeeper.ZooKeeper: Client environment:java.class.path=....

...

14/05/18 14:14:22 INFO zookeeper.RecoverableZooKeeper: The identifier of this process is 6560@LJ-PC

14/05/18 14:14:22 INFO zookeeper.ClientCnxn: Socket connection established to hadoop/192.168.1.95:2181, initiating session

14/05/18 14:14:22 INFO zookeeper.ClientCnxn: Session establishment complete on server hadoop/192.168.1.95:2181, sessionid = 0x460dd23bda0007, negotiated timeout = 180000

14/05/18 14:14:22 INFO zookeeper.ZooKeeper: Session: 0x460dd23bda0007 closed

14/05/18 14:14:22 INFO zookeeper.ClientCnxn: EventThread shut down

*****end create table*************

在centos中查看是否创建成功:

790c3cb1548f40ed76ef5fd6d0af4025.png

网页上查看:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值