HBase 学习之一 <>

HBase使用客户端API动态创建Hbase数据表并在Hbase下导出执行

                      ----首先感谢网络能够给我提供一个开放的学习平台,如果没有网上的技术爱好者提供的帮助,很难学好hbase。

一、hbase简介

       官方:HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构存储集群。

       自己的理解:hbase其实就是一个在hadoop基础上的一个数据库,运行在HDFS文件系统之上,特点是一个基于内存面向列的数据库。

        hbase架构图

       HBase 学习之一  <<HBase使用客户端API动态创建Hbase数据表并在Hbase下导出执行>>

二、Hbase数据模型

  1、概念图

  基于Google的bigtable模型(key-value对)

  HBase 学习之一  <<HBase使用客户端API动态创建Hbase数据表并在Hbase下导出执行>>

  2、逻辑视图

  网上查了一些资料,举一个例子来说说我的理解吧。

row key data
wangsan

info:{'height:178','sex:boy'}

message:{'tpl:18363636363','email:1@qq.com'}

lisi

info:{'height:176','sex:gril'}

message:{'tpl:18363636364','email:2@qq.com'}

      

  3、hbase的key和列族

      与nosql数据库们一样,row key是用来检索记录的主键。

  HBase 学习之一  <<HBase使用客户端API动态创建Hbase数据表并在Hbase下导出执行>>

  1)每行都有row key。

  2)每条记录分隔成列族集合。

  3)每个列族由若干列组成。

三、API操作

创建一个表test,首先导入jar包,在hive的安装目录下的lib中去找就可以了。

public static void main(String[] args) throws MasterNotRunningException, ZooKeeperConnectionException, IOException {
// TODO Auto-generated method stub
Configuration con = HBaseConfiguration.create();
HBaseAdmin admin = new HBaseAdmin(con); TableName name = TableName.valueOf("test"); HTableDescriptor descriptor = new HTableDescriptor(name); HColumnDescriptor columnDescriptor = new HColumnDescriptor("data");
descriptor.addFamily(columnDescriptor); admin.createTable(descriptor); System.out.println("create ok");
}

将程序导出成jar文件,放到Linux系统中的新建目录/opt/bin/hbase中吧。

首先:执行下面两部操作。

HBase 学习之一  <<HBase使用客户端API动态创建Hbase数据表并在Hbase下导出执行>>

执行jar文件。

HBase 学习之一  <<HBase使用客户端API动态创建Hbase数据表并在Hbase下导出执行>>

HBase 学习之一  <<HBase使用客户端API动态创建Hbase数据表并在Hbase下导出执行>>

test表创建成功。

hbase shell指令。

执行list指令,就可以看到hbase下面新建号的test表。

上一篇:活动安排问题--贪心算法


下一篇:使用oledb读写excel出现“操作必须使用一个可更新的查询”的解决办法