HBase 学习之一 >

时间:2021-03-31 08:37:24

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

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

一、hbase简介

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

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

        hbase架构图

       HBase 学习之一 >

二、Hbase数据模型

  1、概念图

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

  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 学习之一 >

 

  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 学习之一 >

执行jar文件。

HBase 学习之一 >

HBase 学习之一 >

test表创建成功。

hbase shell指令。

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