1.理解HBase表模型及四维坐标:行键、列族、列限定符和时间戳。

行键:由一个RowKey和多个列族组成,一个行有一个RowKey,用来唯一标示。

列族:每一行由若干列族组成,每个列族下可包含多个列,如上ImployeeBasicInfoCLF和DetailInfoCLF即是两个列族。列族是列共性的一些体现。

列限定符:列由列族和列限定符唯一指定。

时间戳:单元格内不同版本的值按时间倒序排列,最新的数据排在最前面。

2.启动HDFS,启动HBase,进入HBaseShell命令行。

启动HDFS:start-dfs.sh

HBase:start-hbase.sh

HBaseShell:hbase shell

中间检查:jps

hbase在表里创建多个列族 hbase建表列和列族_mysql

 

hbase在表里创建多个列族 hbase建表列和列族_mysql_02

3.列出HBase中所有的表信息list

直接在shell中输入list,回车

hbase在表里创建多个列族 hbase建表列和列族_数据_03

4.创建表create

创建一个包含3个列族“f1”,“f2”,“f3”的名为“tempTable”的表

在shell中输入命令create 'tempTable','f1','f2','f3'

hbase在表里创建多个列族 hbase建表列和列族_多版本_04

并输入list查看当前表

hbase在表里创建多个列族 hbase建表列和列族_多版本_05

5.查看表详情desc

 desc '表名'即可查看表详情

hbase在表里创建多个列族 hbase建表列和列族_数据_06

6.插入数据put

向表tempTable中的第r1行、第“f1:c1”列,插入一组数据值为“hello,dblab”

put 'tempTable','r1','f1:c1','hello,dblab'

hbase在表里创建多个列族 hbase建表列和列族_mysql_07

7.查看表数据scan,get

scan '表名'即可查看表数据

hbase在表里创建多个列族 hbase建表列和列族_数据_08

get 表名、 行、 列、 时间戳、 时间范围和版本号来获得相应单元格的值

hbase在表里创建多个列族 hbase建表列和列族_mysql_09

 

遇到的问题:查询表格信息时输错信息,回车后一直陷入换行不执行的问题,这时可按ctrl+c退出shell界面进入终端界面,再次输入hbase shell进入shell界面即可。

 

8.多版本实验:修改列族版本数,插入多版本数据,查看多版本数据 

(1)创建表并查看

create 't2','f1',{NAME=>'f2',VERSIONS=>'3'}

desc 't2'

hbase在表里创建多个列族 hbase建表列和列族_mysql_10

 

(2)修改列族版本数并查看

alter 't2',{NAME=>'f1',VERSIONS=>'5'}

desc 't2'

hbase在表里创建多个列族 hbase建表列和列族_多版本_11

(3)插入多版本数据

put 't2','r1','f1:c1','v1'
put 't2','r1','f1:c1','v2'
put 't2','r1','f1:c1','v3'
put 't2','r1','f1:c1','v1'

hbase在表里创建多个列族 hbase建表列和列族_多版本_12

(4)查看多版本数据

get 't2','r1'
get 't2','r1',{COLUMN=>'f1:c1',VERSIONS=>5}

hbase在表里创建多个列族 hbase建表列和列族_多版本_13

hbase在表里创建多个列族 hbase建表列和列族_多版本_14

 

 

9.对比HBase列式表与MySQL的行式表

 

info

score

name

age

sex

OS

BD

row1

…3624

xianming

…3447

19

 

 

85

90

row2

 

 

…6395

…7611

19

22

 

 

 

 

row3

 

 

 

 

…4968

femal

 

 

  • 在HBase中创建学生课程分数表student并查看表结构。create,describe,put

    create 'user','info'

    

hbase在表里创建多个列族 hbase建表列和列族_多版本_15

    desc 'user'

    

hbase在表里创建多个列族 hbase建表列和列族_数据_16

  • 在mysql中创建学生表student, 课程表 course, 分数表score并查看表结构。create,describe

    进入mysql:mysql -u root -p

    

hbase在表里创建多个列族 hbase建表列和列族_数据_17

    创建学生表student并查看表结构

    

hbase在表里创建多个列族 hbase建表列和列族_mysql_18

    创建课程表course并查看表结构

    

hbase在表里创建多个列族 hbase建表列和列族_多版本_19

分数表score并查看表结构

    

hbase在表里创建多个列族 hbase建表列和列族_数据_20

  • 分别插入几行数据,几个版本。put/insert

    (1)HBase

     插入数据

   

put 'user','row1','info:name','xiaohong'
     put 'user','row2','info:age','20'
     put 'user','row3','info:sex','femal'

     

hbase在表里创建多个列族 hbase建表列和列族_mysql_21

     插入版本

   

put 'user','row1','info:age','19'
     put 'user','row2','info:age','19'
     disable 'user'
     alter 'user',NAME=>'info',VERSIONS=>3
     enable 'user'
     put 'user','row2','info:age','22'

     

hbase在表里创建多个列族 hbase建表列和列族_多版本_22

    (2)mysql

     插入数据

     

hbase在表里创建多个列族 hbase建表列和列族_多版本_23

     

hbase在表里创建多个列族 hbase建表列和列族_多版本_24

     

hbase在表里创建多个列族 hbase建表列和列族_多版本_25

  • 查看数据及版本。get,scan/select

    (1)HBase

    查看数据

    get ‘user’,'row2'

    

hbase在表里创建多个列族 hbase建表列和列族_数据_26

    get 'user','row3','info:sex'

    

hbase在表里创建多个列族 hbase建表列和列族_数据_27

    scan ‘user’

    

hbase在表里创建多个列族 hbase建表列和列族_多版本_28

    scan ‘user’,{LIMIT => 2}

    

hbase在表里创建多个列族 hbase建表列和列族_数据_29

     查看版本

    scan 'user,{VERSIONS=>3}

    

hbase在表里创建多个列族 hbase建表列和列族_mysql_30

    scan 'user'

    

hbase在表里创建多个列族 hbase建表列和列族_多版本_31

   (2)mysql

    

hbase在表里创建多个列族 hbase建表列和列族_数据_32