文章目录

  • 1. 常用shell操作
  • 1.1 需求
  • 1.2 创建表
  • 1.2.1 启动HBase Shell
  • 1.2.1 创建表
  • 1.2.2 查看表
  • 1.2.3 删除表
  • 1.2.3.1 禁用表
  • 1.2.3.2 删除表
  • 1.2.3.3 删除ORDER_INFO表
  • 1.3 添加数据
  • 1.3.1 需求
  • 1.3.2 PUT操作
  • 1.4 查看添加的数据
  • 1.4.1 需求
  • 1.4.2 get命令
  • 1.4.3 查询指定订单ID的数据
  • 1.4.4 显示中文
  • 1.4.4.1 查看订单的数据
  • 1.5 删除操作
  • 1.5.1 删除状态列数据
  • 1.5.2 删除整行数据
  • 1.5.3 清空表
  • 1.6 导入测试数据集
  • 1.6.1 需求
  • 1.6.2 执行command文件
  • 1.7 计数操作
  • 1.7.1 需求
  • 1.7.2 count命令
  • 1.7.3 获取订单数据
  • 1.8 大量数据的计数统计
  • 1.8.1 启动YARN集群
  • 1.8.2 执行MR JOB
  • 1.9 扫描操作
  • 1.9.1 需求一:查询订单所有数据
  • 1.9.1.1 需求
  • 1.9.1.2 scan命令
  • 1.9.1.3 扫描ORDER_INFO表
  • 1.9.2 需求二:查询订单数据(只显示3条)
  • 1.9.3 需求三:查询订单状态、支付方式
  • 1.9.3.1 需求
  • 1.9.3.2 命令
  • 1.9.4 需求四:查询指定订单ID的数据并以中文展示
  • 1.10 过滤器
  • 1.10.1 简介
  • 1.10.2 HBase中的过滤器
  • 1.10.3 过滤器的用法
  • 1.10.3.1 比较运算符
  • 1.10.3.2 比较器
  • 1.10.3.3 比较器表达式
  • 1.10.4 需求一:查询指定订单ID的数据
  • 1.10.4.1 需求
  • 1.10.4.2 命令
  • 1.10.5 需求二:查询状态为已付款的订单
  • 1.10.5.1 需求
  • 1.10.5.2 命令
  • 1.10.6 需求三:查询支付方式为1,且金额大于3000的订单
  • 1.10.6.1 命令
  • 1.11 INCR
  • 1.11.1 需求
  • 1.11.2 incr操作简介
  • 1.11.3 导入测试数据
  • 1.11.4 需求一:对000000002新闻01:00 - 02:00访问计数+1
  • 1.12 更多的操作
  • 2.Shell管理操作
  • 2.1 status - 显示服务器状态
  • 2.2 whoami - 显示HBase当前用户
  • 1.3 list - 显示当前所有的表
  • 1.4 count - 统计指定表的记录数
  • 1.5 describe - 展示表结构信息
  • 1.6 exists - 检查表是否存在,适用于表量特别多的情况
  • 1.7 is_enabled、is_disabled - 检查表是否启用或禁用
  • 1.8 alter - 修改表和列簇
  • 1.9 disable/enable - 禁用一张表/启用一张表
  • 1.10 drop - 删除表
  • 1.11 truncate - 清空表的数据


1. 常用shell操作

我们可以以shell的方式来维护和管理HBase。例如:执行建表语句、执行增删改查操作等等。

1.1 需求

有以下订单数据,我们想要将这样的一些数据保存到HBase中。

订单ID

订单状态

支付金额

支付方式ID

用户ID

操作时间

商品分类

001

已付款

200.5

1

001

2020-5-2 18:08:53

手机;

接下来,我们将使用HBase shell来进行以下操作:

  1. 创建表
  2. 添加数据
  3. 更新数据
  4. 删除数据
  5. 查询数据

1.2 创建表

在HBase中,所有的数据也都是保存在表中的。要将订单数据保存到HBase中,首先需要将表创建出来。

1.2.1 启动HBase Shell

HBase的shell其实JRuby的IRB(交互式的Ruby),但在其中添加了一些HBase的命令。

启动HBase shell:

#启动命令:hbase shell
[root@node1 ~]# hbase shell
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/export/servers/hadoop-2.7.5/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/export/servers/hbase-2.1.0/lib/client-facing-thirdparty/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
HBase Shell
Use "help" to get list of supported commands.
Use "exit" to quit this interactive shell.
Version 2.1.0, re1673bb0bbfea21d6e5dba73e013b09b8b49b89b, Tue Jul 10 17:26:48 CST 2018
Took 0.0077 seconds                                                              
hbase(main):001:0>

1.2.1 创建表

语法:
create '表名','列蔟名'...

创建订单表,表名为ORDER_INFO,该表有一个列蔟为C1

create 'ORDER_INFO','C1';

注意:

  • create要写成小写
  • 一个表可以包含若干个列蔟

1.2.2 查看表

语法:
list

查看表

hbase(main):002:0> list
Created table ORDER_INFO
Took 1.2286 seconds                                                                 
TABLE                                                                               
ORDER_INFO   
1 row(s)
Took 0.0573 seconds                                                                 
=> ["ORDER_INFO"]

1.2.3 删除表

要删除某个表,必须要先禁用表

1.2.3.1 禁用表
语法:
disable "表名"
1.2.3.2 删除表
语法:
drop "表名"
1.2.3.3 删除ORDER_INFO表
hbase(main):003:0> disable 'ORDER_INFO' #禁用表
Took 0.5663 seconds                                                            
hbase(main):004:0> drop 'ORDER_INFO' #删除表
Took 0.4755 seconds

1.3 添加数据

1.3.1 需求

接下来,我们需要往订单表中添加以下数据。

订单ID

订单状态

支付金额

支付方式ID

用户ID

操作时间

商品分类

ID

STATUS

PAY_MONEY

PAYWAY

USER_ID

OPERATION_DATE

CATEGORY

000001

已提交

4070

1

4944191

2020-04-25 12:09:16

手机;

1.3.2 PUT操作

HBase中的put命令,可以用来将数据保存到表中。但put一次只能保存一个列的值。

以下是put的语法结构:

语法:
put '表名','ROWKEY','列蔟名:列名','值'

要添加以上的数据,需要使用7次put操作。如下:

put 'ORDER_INFO','000001','C1:ID','000001'
put 'ORDER_INFO','000001','C1:STATUS','已提交'
put 'ORDER_INFO','000001','C1:PAY_MONEY',4070
put 'ORDER_INFO','000001','C1:PAYWAY',1
put 'ORDER_INFO','000001','C1:USER_ID',4944191
put 'ORDER_INFO','000001','C1:OPERATION_DATE','2020-04-25 12:09:16'
put 'ORDER_INFO','000001','C1:CATEGORY','手机;'

1.4 查看添加的数据

1.4.1 需求

要求将rowkey为:000001对应的数据查询出来。

1.4.2 get命令

在HBase中,可以使用get命令来获取单独的一行数据。

语法:
get '表名','rowkey'

1.4.3 查询指定订单ID的数据

get ‘ORDER_INFO’,'000001’

hbase(main):018:0> get 'ORDER_INFO','000001'
COLUMN             CELL                                     
C1:CATEGORY        timestamp=1599578954616, value=\xE6\x89\x8B\xE6\x9C\xBA;   
C1:ID              timestamp=1599578763152, value=000001            
C1:OPERATION_DATE  timestamp=1599578946216, value=2020-04-25 12:09:16   
C1:PAYWAY          timestamp=1599578928316, value=1              
C1:PAY_MONEY       timestamp=1599578915105, value=4070      
C1:STATUS          timestamp=1599578846134,value=\xE5\xB7\xB2\xE6\x8F\x90\xE4\xBA\xA4
C1:USER_ID         timestamp=1599578937930, value=4944191     
1 row(s)
Took 0.0424 seconds

1.4.4 显示中文

在HBase shell中,如果在数据中出现了一些中文,默认HBase shell中显示出来的是十六进制编码。要想将这些编码显示为中文,我们需要在get命令后添加一个属性:{FORMATTER => ‘toString’}

1.4.4.1 查看订单的数据
get  'ORDER_INFO','000001', {FORMATTER => 'toString'}

注:

  • { key => value},这个是Ruby语法,表示定义一个HASH结构
  • get是一个HBase Ruby方法,’ORDER_INFO’、’000001’、{FORMATTER => ‘toString’}是put方法的三个参数
  • 注意:FORMATTER要使用大写
hbase(main):019:0> get 'ORDER_INFO','000001',{FORMATTER => 'toString'}
COLUMN             CELL    
C1:CATEGORY        timestamp=1599578954616, value=手机; 
C1:ID              timestamp=1599578763152, value=000001 
C1:OPERATION_DATE  timestamp=1599578946216, value=2020-04-25 12:09:16
C1:PAYWAY          timestamp=1599578928316, value=1
C1:PAY_MONEY       timestamp=1599578915105, value=4070
C1:STATUS          timestamp=1599578846134, value=已提交 
C1:USER_ID         timestamp=1599578937930, value=4944191 
1 row(s)
Took 0.0230 seconds

1.5 删除操作

1.5.1 删除状态列数据

  1. 需求

将订单ID为000001的状态列删除。

  1. delete命令

在HBase中,可以使用delete命令来将一个单元格的数据删除。

语法格式如下:

语法:
delete '表名', 'rowkey', '列蔟:列'
  1. 删除指定的列
delete 'ORDER_INFO','000001','C1:STATUS'

1.5.2 删除整行数据

  1. 需求

将订单ID为000001的信息全部删除(删除所有的列)

  1. deleteall命令

deleteall命令可以将指定rowkey对应的所有列全部删除。

语法:
deleteall '表名','rowkey'
  1. 删除指定的订单
deleteall 'ORDER_INFO','000001'

1.5.3 清空表

  1. 需求

将ORDER_INFO的数据全部删除

  1. truncate命令

truncate命令用来清空某个表中的所有数据。

语法:
truncate "表名"
  1. 清空ORDER_INFO的所有数据
truncate 'ORDER_INFO'

1.6 导入测试数据集

1.6.1 需求

文件ORDER_INFO.txt 中,有一份这样的HBase数据集,我们需要将这些指令放到HBase中执行,将数据导入到HBase中。

具体数据可以自己模拟下面图片里面的脚本

可以看到这些都是一堆的put语句。那么如何才能将这些语句全部执行呢?

hbase shell命令 创建表 hbase的shell操作_删除表

1.6.2 执行command文件

  1. 上传command文件

将该数据集文件上传到指定的目录中

  1. 执行

使用以下命令执行即可。

#命令
hbase shell /export/software/ORDER_INFO.txt

1.7 计数操作

1.7.1 需求

查看HBase中的ORDER_INFO表,一共有多少条记录。

1.7.2 count命令

count命令专门用来统计一个表中有多少条数据。

语法:
count '表名'

注意:这个操作是比较耗时的。在数据量大的这个命令可能会运行很久。

1.7.3 获取订单数据

count 'ORDER_INFO'

1.8 大量数据的计数统计

当HBase中数据量大时,可以使用HBase中提供的MapReduce程序来进行计数统计。

语法如下:
$HBASE_HOME/bin/hbase org.apache.hadoop.hbase.mapreduce.RowCounter '表名'

1.8.1 启动YARN集群

#启动yarn集群  
start-yarn.sh  
#启动historyserver
mr-jobhistory-daemon.sh  start historyserver

1.8.2 执行MR JOB

$HBASE_HOME/bin/hbase org.apache.hadoop.hbase.mapreduce.RowCounter  'ORDER_INFO'

通过观察YARN的WEB UI,我们发现HBase启动了一个名字为rowcounter_ORDER_INFO的作业。

hbase shell命令 创建表 hbase的shell操作_hbase shell命令 创建表_02

1.9 扫描操作

1.9.1 需求一:查询订单所有数据

1.9.1.1 需求

查看ORDER_INFO表中所有的数据

1.9.1.2 scan命令

在HBase,我们可以使用scan命令来扫描HBase中的表。

语法:
scan '表名'
1.9.1.3 扫描ORDER_INFO表
scan  'ORDER_INFO',{FORMATTER => 'toString'}

注意:要避免scan一张大表!

1.9.2 需求二:查询订单数据(只显示3条)

scan 'ORDER_INFO', {LIMIT => 3,  FORMATTER => 'toString'}

1.9.3 需求三:查询订单状态、支付方式

1.9.3.1 需求

只查询订单状态以及支付方式,并且只展示3条数据

1.9.3.2 命令
scan 'ORDER_INFO', {LIMIT => 3,  COLUMNS => ['C1:STATUS', 'C1:PAYWAY'], FORMATTER => 'toString'}

1.9.4 需求四:查询指定订单ID的数据并以中文展示

根据ROWKEY来查询对应的数据,ROWKEY为 ,只查询订单状态、支付方式,并以中文展示。

要查询指定ROWKEY的数据,需要使用ROWPREFIXFILTER,用法为:

语法:
scan '表名', {ROWPREFIXFILTER => 'rowkey'}

实现指令:

scan 'ORDER_INFO', {ROWPREFIXFILTER  => '02602f66-adc7-40d4-8485-76b5632b5b53', COLUMNS => ['C1:STATUS',  'C1:PAYWAY'], FORMATTER => 'toString'}

1.10 过滤器

1.10.1 简介

在HBase中,如果要对海量的数据来进行查询,此时基本的操作是比较无力的。此时,需要借助HBase中的高级语法——Filter来进行查询。Filter可以根据列簇、列、版本等条件来对数据进行过滤查询。因为在HBase中,主键、列、版本都是有序存储的,所以借助Filter,可以高效地完成查询。当执行Filter时,HBase会将Filter分发给各个HBase服务器节点来进行查询。

HBase中的过滤器也是基于Java开发的,只不过在Shell中,我们是使用基于JRuby的语法来实现的交互式查询。以下是HBase 2.2的JAVA API文档。

http://hbase.apache.org/2.2/devapidocs/index.html

1.10.2 HBase中的过滤器

在HBase的shell中,通过show_filters指令,可以查看到HBase中内置的一些过滤器。

hbase(main):011:0> show_filters
DependentColumnFilter                                                               
KeyOnlyFilter                                                                        
ColumnCountGetFilter                                                                
SingleColumnValueFilter                                                             
PrefixFilter                                                                         
SingleColumnValueExcludeFilter                                                       
FirstKeyOnlyFilter  
ColumnRangeFilter                                                                   
ColumnValueFilter                                                                   
TimestampsFilter
FamilyFilter                                                                         
QualifierFilter                                                                      
ColumnPrefixFilter                                                                   
RowFilter                                                                          
MultipleColumnPrefixFilter                                                           
InclusiveStopFilter                                                                 
PageFilter                                                                           
ValueFilter                                                                         
ColumnPaginationFilter
  • rowkey过滤器

rowkey过滤器

作用

RowFilter

实现行键字符串的比较和过滤

PrefixFilter

rowkey前缀过滤器

KeyOnlyFilter

只对单元格的键进行过滤和显示,不显示值

FirstKeyOnlyFilter

只扫描显示相同键的第一个单元格,其键值对会显示出来

InclusiveStopFilter

替代 ENDROW 返回终止条件行

  • 列过滤器

列过滤器

作用

FamilyFilter

列簇过滤器

QualifierFilter

列标识过滤器,只显示对应列名的数据

ColumnPrefixFilter

对列名称的前缀进行过滤

MultipleColumnPrefixFilter

可以指定多个前缀对列名称过滤

ColumnRangeFilter

过滤列名称的范围

  • 值过滤器

值过滤器

作用

ValueFilter

值过滤器,找到符合值条件的键值对

SingleColumnValueFilter

在指定的列族和列中进行比较的值过滤器

SingleColumnValueExcludeFilter

排除匹配成功的值

  • 其他过滤器

其他过滤器

作用

ColumnPaginationFilter

对一行的所有列分页,只返回 [offset,offset+limit] 范围内的列

PageFilter

对显示结果按行进行分页显示

TimestampsFilter

时间戳过滤,支持等值,可以设置多个时间戳

ColumnCountGetFilter

限制每个逻辑行返回键值对的个数,在 get 方法中使用

DependentColumnFilter

允许用户指定一个参考列或引用列来过滤其他列的过滤器

Java API官方地址:https://hbase.apache.org/devapidocs/index.html

1.10.3 过滤器的用法

过滤器一般结合scan命令来使用。打开HBase的JAVA API文档。找到RowFilter的构造器说明,我们来看以下,HBase的过滤器该如何使用。

语法:
scan '表名', { Filter => "过滤器(比较运算符, '比较器表达式') }
1.10.3.1 比较运算符

比较运算符

描述

=

等于

>

大于

>=

大于等于

<

小于

<=

小于等于

!=

不等于

1.10.3.2 比较器

比较器

描述

BinaryComparator

匹配完整字节数组

BinaryPrefixComparator

匹配字节数组前缀

BitComparator

匹配比特位

NullComparator

匹配空值

RegexStringComparator

匹配正则表达式

SubstringComparator

匹配子字符串

1.10.3.3 比较器表达式

基本语法:比较器类型:比较器的值

比较器

表达式语言缩写

BinaryComparator

binary:值

BinaryPrefixComparator

binaryprefix:值

BitComparator

bit:值

NullComparator

null

RegexStringComparator

regexstring:正则表达式

SubstringComparator

substring:值

1.10.4 需求一:查询指定订单ID的数据

1.10.4.1 需求

只查询订单的ID为:02602f66-adc7-40d4-8485-76b5632b5b53、订单状态以及支付方式

分析

  1. 因为要订单ID就是ORDER_INFO表的rowkey,所以,我们应该使用rowkey过滤器来过滤
  2. 通过HBase的JAVA API,找到RowFilter构造器

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Eo795NUA-1599649780319)(HBase常用的shell操作.assets/clip_image002-1599583089459.jpg)]

通过上图,可以分析得到,RowFilter过滤器接受两个参数,

  • op——比较运算符
  • rowComparator——比较器

所以构建该Filter的时候,只需要传入两个参数即可

1.10.4.2 命令
scan 'ORDER_INFO', {FILTER => "RowFilter(=,'binary:02602f66-adc7-40d4-8485-76b5632b5b53')"}

1.10.5 需求二:查询状态为已付款的订单

1.10.5.1 需求

查询状态为「已付款」的订单

分析

  1. 因为此处要指定列来进行查询,所以,我们不再使用rowkey过滤器,而是要使用列过滤器
  2. 我们要针对指定列和指定值进行过滤,比较适合使用SingleColumnValueFilter过滤器,查看JAVA API

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H0jqjaXc-1599649780321)(HBase常用的shell操作.assets/clip_image004.jpg)]

需要传入四个参数:

  • 列簇
  • 列标识(列名)
  • 比较运算符
  • 比较器
1.10.5.2 命令
scan 'ORDER_INFO', {FILTER => "SingleColumnValueFilter('C1', 'STATUS', =, 'binary:已付款')", FORMATTER => 'toString'}

1.10.6 需求三:查询支付方式为1,且金额大于3000的订单

分析

  • 此处需要使用多个过滤器共同来实现查询,多个过滤器,可以使用AND或者OR来组合多个过滤器完成查询
  • 使用ColumnValueFilter实现对应列的查询
1.10.6.1 命令
  1. 查询支付方式为1
SingleColumnValueFilter('C1', 'PAYWAY', = , 'binary:1')
  1. 查询金额大于3000的订单
SingleColumnValueFilter('C1', 'PAY_MONEY', > , 'binary:3000')
  1. 组合查询
scan 'ORDER_INFO', {FILTER => "SingleColumnValueFilter('C1', 'PAYWAY', = , 'binary:1') AND SingleColumnValueFilter('C1', 'PAY_MONEY', > , 'binary:3000')", FORMATTER => 'toString'}

注意:

  • HBase shell中比较默认都是字符串比较,所以如果是比较数值类型的,会出现不准确的情况
  • 例如:在字符串比较中4000是比100000大的

1.11 INCR

1.11.1 需求

某新闻APP应用为了统计每个新闻的每隔一段时间的访问次数,他们将这些数据保存在HBase中。

该表格数据如下所示:

新闻ID

访问次数

时间段

ROWKEY

0000000001

12

00:00-01:00

0000000001_00:00-01:00

0000000002

12

01:00-02:00

0000000002_01:00-02:00

要求:原子性增加新闻的访问次数值。

1.11.2 incr操作简介

incr可以实现对某个单元格的值进行原子性计数。

语法:
#incr操作计数器
incr '表名','rowkey','列蔟:列名',累加值(默认累加1)

#获取对应的计数器的值
get_counter '表名','rowkey','列蔟:列名'
  • 如果某一列要实现计数功能,必须要使用incr来创建对应的列
  • 使用put创建的列是不能实现累加的

1.11.3 导入测试数据

hbase shell /export/software/NEWS_VISIT_CNT.txt 

scan 'NEWS_VISIT_CNT', {LIMIT => 5, FORMATTER => 'toString'}

1.11.4 需求一:对000000002新闻01:00 - 02:00访问计数+1

1.获取0000000020这条新闻在01:00-02:00当前的访问次数

hbase(main):001:0> get_counter 'NEWS_VISIT_CNT','0000000002_01:00-02:00','C1:CNT'
COUNTER VALUE = 17
Took 0.4634 seconds

2.使用incr进行累加

hbase(main):002:0> incr  'NEWS_VISIT_CNT','0000000002_01:00-02:00','C1:CNT'
COUNTER VALUE = 18
Took 0.0298 seconds

3.再次查案新闻当前的访问次数

hbase(main):003:0> get_counter 'NEWS_VISIT_CNT','0000000002_01:00-02:00','C1:CNT'
COUNTER VALUE = 18

1.12 更多的操作

以下连接可以查看到所有HBase中支持的SHELL脚本。

https://learnhbase.net/2013/03/02/hbase-shell-commands/

2.Shell管理操作

2.1 status - 显示服务器状态

例如:显示服务器状态

2.4.1  :062 > status 
1  active master, 0 backup masters, 3 servers, 0 dead, 1.0000 average load  Took  0.0034 seconds

2.2 whoami - 显示HBase当前用户

显示HBase当前用户,例如:

2.4.1  :066 > whoami  root  (auth:SIMPLE)    groups: root  Took  0.0080 seconds

1.3 list - 显示当前所有的表

hbase(main):005:0> list
TABLE                                                                           
NEWS_VISIT_CNT  
ORDER_INFO    
TEST
3 row(s)
Took 0.0436 seconds                                                                  
=> ["NEWS_VISIT_CNT", "ORDER_INFO", "TEST"]

1.4 count - 统计指定表的记录数

2.4.1  :070 >count 'ORDER_INFO'  
 66  row(s)  Took  0.0404 seconds                                                      => 66

1.5 describe - 展示表结构信息

2.4.1 :074 > describe 'ORDER_INFO'
Table ORDER_INFO is ENABLED                                      
ORDER_INFO                                                       
COLUMN FAMILIES DESCRIPTION                                     
{NAME => 'C1', VERSIONS => '1', EVICT_BLOCKS_ON_CLOSE => 'false', NEW_VERSION_BEHAVIOR => 'false', KEEP_DELETED_CELLS => 'FALSE', CACHE_DATA_ON_WRITE =
> 'false', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', MIN_VERSIONS => '0', REPLICATION_SCOPE => '0', BLOOMFILTER => 'ROW', CACHE_INDEX_ON_WRITE =
> 'false', IN_MEMORY => 'false', CACHE_BLOOMS_ON_WRITE => 'false', PREFETCH_BLOCKS_ON_OPEN => 'false', COMPRESSION => 'NONE', BLOCKCACHE => 'true', BLO
CKSIZE => '65536'}                                               
1 row(s)
Took 0.0265 seconds

1.6 exists - 检查表是否存在,适用于表量特别多的情况

2.4.1  :075 > exists 'ORDER_INFO‘  
  Table  ORDER_INFO does exist                                                         Took  0.0050 seconds                                                                 => true

1.7 is_enabled、is_disabled - 检查表是否启用或禁用

2.4.1  :077 > is_enabled 'ORDER_INFO' 
true                                           
Took  0.0058 seconds                                                                 => true   
2.4.1  :078 >is_disabled 'ORDER_INFO'
false                                                                             Took  0.0085 seconds                                                                  => 1

1.8 alter - 修改表和列簇

该命令可以改变表和列族的模式,例如:

# 创建一个USER_INFO表,两个列蔟C1、C2  
create 'USER_INFO', 'C1', 'C2'  
# 新增列蔟C3  
alter 'USER_INFO', 'C3'  
# 删除列蔟C3  
alter 'USER_INFO', 'delete' => 'C3'

注意:

  • ‘delete’ => ‘C3’,还是一个Map结构,只不过只有一个key,可以省略两边的{}

1.9 disable/enable - 禁用一张表/启用一张表

disable/enable '表名'

1.10 drop - 删除表

删除一张表,记得在删除表之前必须先禁用

drop '表名'

1.11 truncate - 清空表的数据

清空表的数据,禁用表-删除表-创建表

truncate '表名'