HBase的数据管理 | 「掘金日新计划 · 12 月更文挑战」

114 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第18天

一、本篇笔记重点内容:

  • HBase Shell
  • HBase命名空间的命令:创建、删除、查询
  • 表管理

二、 详细知识点介绍

HBase Shell

HBase Shell中涉及到命名空间、表、数据增删改查、工具、权限等命令,这些命令对于掌握并管理HBase是非常关键的。

HBase提供了九大类命令,包括通用命令、DDL命令、DML命令、命名空间、工具、快照、安全、可视化标签、复制等。这些命令可以帮助管理与操作HBase集群。每一类命令的具体作用如下表:

image.png 在HBase Shell中输入help命令,可以查看所有分类及其所属命令的清单。

hbase> help

命名空间

从HBase 0.98版本开始支持命名空间,命名空间用于对HBase中的表进行逻辑管理,类似于传统DBMS中数据库的概念。一个数据库里可以建多张表,同理,在HBase的命名空间里,可以管理多张表。

HBase命名空间的命令包括:创建、删除、查询等操作。

HBase命名空间的命令:创建、删除、查询

  • 创建命名空间

create_namespace 'bigdata'

  • 查看命名空间

list_namespace

  • 查看命名空间中的表

list_namespace_tables ‘hbase’

  • 查看命名空间描述

describe_namespace 'hbase’

  • 修改命名空间

例如,为bigdata设定两个属性信息,设定的规则为{METHOD=>’set’, ‘key’=>’value’},在key与value中填充要设定的属性名和属性值:

alter_namespace 'bigdata’,{METHOD=>’set’, ‘memo’=>'bigdata'}

alter_namespace 'bigdata’,{METHOD=>’set’, ‘createtime’=>'2016-01-30'}

describe_namespace 'bigdata’

要取消已设定的属性,规则为{METHOD=>’unset’, NAME=>‘key’,指定取消的属性名,填充到key:

alter_namespace 'bigdata’,{METHOD=>’unset’, NAME=>‘memo’}

describe_namespace 'bigdata’

  • 删除命名空间

drop_namespace 'big’

list_namespace

表管理

HBase的表管理对应于前面提到的DDL命令,它定义了对表及其结构的操作,包括表的创建、结构修改、表的停用、表的删除、批量停用与删除表等。

使用create命令能够创建一张表,需要指定的参数包括表名称、列族名称、命名空间。

1)查看有哪些表

hbase(main)> list

 

2)创建表

使用create命令能够创建一张表,需要指定的参数包括表名称、列族名称、命名空间。

语法:create < table>, {NAME => , VERSIONS => }

例如:创建表t1,有两个family name:f1,f2,且版本数均为2

hbase(main)> create 't1',{NAME => 'f1', VERSIONS => 2},{NAME => 'f2', VERSIONS => 2}

 

3)删除表

分两步:首先disable,然后drop

例如:删除表t1

hbase(main)> disable 't1'

hbase(main)> drop 't1'

 

4)查看表的结构

语法:describe

例如:查看表t1的结构

hbase(main)> describe 't1'

 

5)修改表结构

修改表结构必须先disable

语法:alter 't1', {NAME => 'f1'}, {NAME => 'f2', METHOD => 'delete'}

例如:修改表test1的cf的TTL为180天

hbase(main)> disable 'test1'

hbase(main)> alter 'test1',{NAME=>'body',TTL=>'15552000'},{NAME=>'meta', TTL=>'15552000'}

hbase(main)> enable 'test1'