1
. Hbase的数据模型:
Hbase是一个高可靠性、高性能、面向列、可伸缩的分布式数据库。利用Hbase技术可在廉价PC Server上搭建起大规模结构化存储集群。Hbase是非关系型数据库,它不要求数据之间有严格的关系,同时它允许在同一列不同行中存储不同类型的数据。Hbase作为Hadoop框架下的数据库,是被设计成在一个服务器集群上运行的。
进入hbase shell
首先,先打开终端切换到root用户下:
sudo su
我们需要进入 hadoop目录下的sbin文件夹中。
cd /opt/hadoop/sbin/
初始化namenode:
hadoop namenode -format
启动hdfs:
./start-all.sh
cd /opt/hbase-1.2.6/bin/
启动hbase
./start-hbase.sh
使用hbase shell命令来连接正在运行的Hbase实例,该命令位于HBase安装包下的bin/目录。HBase Shell提示符以>符号结束。
Hbase 创建数据库表。
创建数据库表的命令:create ‘表名’, ‘列族名1’,‘列族名2’,'列族名N’例如:以下示例创建了数据库表 user,以及定义两个列族:
create 'user','info1','info2'
如果想查看所有数据库表,可以使用 list 命令:
可以看到,刚创建的数据库表user 已经在数据库表的列表中,如果要看user表的结构,可以用describe命令,如下截图所示:
通过命令:count ‘表名’ 来查看表中的所有记录的数量(根据rowKey来计算);
Hbase数据库表数据的增、删、改、查
(1)Hbase 增加数据的语法格式如下:put‘表名’, ‘rowKey’, ‘列族 : 列’ , '值’例:
put 'user', '1234', 'info1:Name','zhangsan'
(2)Hbase 查询数据的语法格式如下:scan‘表名’来查看表的所有记录;例:
scan 'user'
get ‘表名’ , ‘rowKey’ 来查看某个rowKey下的所有记录;例:
get 'user','1234'
get ‘表名’,‘rowkey’,‘列族’ 来查看某个rowKey列族的记录;例:
get 'user','1234','info1'
get ‘表名’,‘rowkey’,'列族:列’来查看rowKey列族的某个列记录;例:
get 'user','1234','info1:Name'
get来查询删除的记录是否删除成功;例:
```bash
get 'user','1234','info1:Name'
deleteall ‘表名’,‘rowkey’ 来删除整行记录;例:
deleteall 'user','1234'
truncate ‘表名’ 来清空表所有的记录;例:
truncate 'user'
(4)Hbase 更新数据的语法格式如下:
put就是重写一遍,进行覆盖,hbase没有修改,都是追加,即对相同rowKey、列族和列名的数据再次添加即为数据的更新例:
put 'user', '1234', 'info1:Name','zhangsan'
再次追加:
put 'user', '1234', 'info1:Name','zhangsan1'
使用scan查看rowKey=1234的列族info的栏位name的值被成功改为zhangsan1,操作过程如下图所示:
Hbase 删除数据库表
(1)删除数据表的语法格式如下:drop '表名’在删除表时,先要屏蔽该表,才能对该表进行删除;第一步: disable ‘表名’,第二步,查看表是否可用,第二步 :drop '表名'
,具体操作如下图所示: