Nosql_hbase_apply
启动hbase shell
- 启动hadoop
- hadoop/sbin/start-dfs.sh
- 启动hbase
- hbase/bin/start-hbase.sh
- 启动hbase shell
- hbase shell
关闭hbase shell
-
关闭hbase shell
- exit (退出)
-
关闭hbase
- hbase/bin/stop-hbase.sh
-
关闭hadoop
- hadoop/sbin/stop-dfs.sh
Hbase 表结构
hbase shell 基础操作
- 查看Hbase版本号 :version
- 查看显示各主节点的状态之后可以加入参数 :status
- 显示当前用户名 : whoami
表和列族操作
- create 创建表
- alter 修改表结构
- describe 描述表结构
- exist 确认表是否存在
- list 显示所有表名列表
- disable/enable 禁用解禁一个表
- disable_all/enable_all 禁用解禁所有表
- is_disabled 确认表是否被禁用
- drop/drop_all 删除一个或全部表
- truncate 禁用、删除并重建一个表
创建表
- 不指定表参数
create '表名','列族名1'
- 指定参数
create '表名',{NAME => 列族名,VERSION =>5,BLOCKCACHE =>true}
VERSION =>5 对于同一个cell保留最近五个历史版本
BLOCKCACHE =>true 允许读取数据时进行缓存
- 注意大括号中的语法,NAME和VERSIONS为参数名不需要用括号引用,符号
=>表示赋值
查看表名列表
list '表名'exist '表名'
描述表结构
describe '表名'
修改表结构
- 增加新列族
alter '表名','新增列族名'
alter '表名','已有列族名',{NAME => '新增列族名',IN_MEMORY => true}
- 列族已存在情况修改参数
alter '表名',{NAME => '已有列族名',IN_MEMORY => true}
- 删除一个列族,以及其中包含的数据,表中只有一个列族时无法删除
alter '表名','delete'=>'已有列族名'
alter '表名',{NAME =>'已有列族名',METHOD => 'delete'}
- 删除表 需要先禁用再删除
disable '表名' #禁用
is_disabled '表名' #查看是否禁用完成
drop '表名' #删除表
- 下列命令可以顺序完成禁用删除表和所有数据,并按原结构重新建立空表,也就是将原有表的所有数据清空
truncate '表名'
数据更新
数据插入
put '表名','行键名称','列族名:列名','cell值/行列对应值',1
- 第三个参数列族名必须是已经存在的
- 第五个参数为时间戳或者数据版本号,数值越大表示时间或者版本越新,如果不写系统会自动插入当前时间为时间戳
数据更新
- 如果
put语句中的表名,行键,列族列名相同,cell不同多次输入,不考虑时间戳此时执行的put语句视为数据更新 - 默认情况下数据发生更新后旧版数据不可见,但是若建表是对列族制定属性
'VERSIONS => n',则用户可以查询到同一个cell最新的n个版本,具体代码:如何查看旧版数据
数据删除
- 用
delete命令 第三个参数里面的列名和第四个参数时间戳都是可选参数
delete '表名','行键名称','列族名:列名',2 #所有时间戳小于等于2的数据都会被删除 ,删除对应列族的行键数据
- 删除所有列族对应行键的的数据
deleteall '表名','行键名',1 #不需要指定列族和列名
计数器
- 使用
incr命令将cell的数值在原值上加入指定数值
incr '表名','行键名','列族名:列名',10 #每次使用此语句就会让对应数值加10
- 查看当前计数器的值
get_counter '表名','行键名','列族名:列名'
数据查询
- get 根据行键获取一条数据
- scan 扫描一个表可以指定行键范围或使用过滤器限定范围
按行键获取数据
- 必选参数:表名,行键名。可选参数:列族名称,时间戳范围,数据版本数,使用过滤器
get '表名','行键值'
get '表名','行键值',{COLUMN => '列族名',TIMERANGE => [1,3],VERSIONS => 3,FILTER => "过滤器"}
查看旧版数据
get '表名','行键值',{COLUMN => '列族名',VERSIONS => 3}
数据扫描
- 不指定行键
scan '表名'
- 指定列族和列名
scan '表名',{COLUMN => '列族名:列名'}
- 指定输出行数
scan '表名',{LIMIT => 1}
- 指定时间戳或时间范围
scan '表名',{TIMESTAMP => 1}
scan '表名',{TIMERANGE => [1,3]}
- 指定行键范围多个限定条件时,中间用逗号隔开表示AND关系
scan '表名',{'STARTROW =>'001',ENDROW => '002'}
- 使用过滤器
scan '表名',FILTER => "RowFilter(=,'substring:0')"
- 指定同一个键值返回的最多历史版本数量
scan '表名',{VERSIONS =>1}
行计数
- 统计完10000行之后再屏幕上显示进度
count '表名',INTERVAL =>10000

浙公网安备 33010602011771号