【hbase】hbase的shell操作笔记
2024-08-30 00:28:30
HBase Shell
$ ./bin/hbase shell # 进入交互界面
DDL操作:
create:创建表(默认命名空间为default)
# create '表名','列族1','列族2'...
hbase(main):005:0> create 'student','info'
0 row(s) in 1.4250 seconds
=> Hbase::Table - student
list:列出所有table
hbase(main):005:0> list # 列出所有的Table
TABLE
student
1 row(s) in 0.0160 seconds
=> ["student"]describe '表名':查看表详细信息
# 查看表详细信息describe
hbase(main):007:0> describe 'student'
Table student is ENABLED
student
COLUMN FAMILIES DESCRIPTION
{NAME => 'info', BLOOMFILTER => 'ROW', VERSIONS => '', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', COMPRESSION => 'NONE', MIN_VERSIONS => '', BLOCKCACHE => 'true', BLOCKSIZE => '', REPLICATION_SCOPE => ''}
1 row(s) in 0.1090 secondsNAME:列族名
BLOOMFILTER:布隆过滤器
VERSIONS:版本数,当前列族可以存多少版本
alter:修改某列族的信息:
# alter '表名',{NAME=>'列族名' ....}
# 比如:修改VERSION版本数
hbase(main):011:0> alter 'student',{NAME=>'info',VERSIONS=>3}
hbase(main):012:0> describe 'student' # 再次查看
{NAME => 'info', BLOOMFILTER => 'ROW', VERSIONS => '',....删除表,需要先disabled
# 删除表,需要先disabled,再drop
hbase(main):016:0> disable 'student'
hbase(main):017:0> drop 'student'
命名空间:
查看命名空间:list_namespace
hbase(main):019:0> list_namespace
NAMESPACE
default
hbase
2 row(s) in 0.0330 seconds创建命名空间:create_namespace '空间名'
hbase(main):020:0> create_namespace 'bigdata'
创建表到指定命名空间
hbase(main):022:0> create 'bigdata:student','info'
0 row(s) in 2.2200 seconds
=> Hbase::Table - bigdata:student删除命名空间:drop_namespace (必须是空的命名空间,要先删表)
hbase(main):023:0> disable 'bigdata:student'
0 row(s) in 2.2510 seconds
hbase(main):024:0> drop 'bigdata:student'
0 row(s) in 1.2370 seconds
hbase(main):026:0> drop_namespace 'bigdata'
0 row(s) in 0.8750 seconds
DML
put:增加,修改数据
# put '表名','RowKey','列族:列名','数据'
hbase(main):030:0> put 'test','','info1:name','zhangsan'scan:扫描查询(最大范围是查整个table)
# 注意:下面查询结果为3条数据
hbase(main):040:0> scan 'test'
ROW COLUMN+CELL
1001 column=info1:age, timestamp=1571381227061, value=17
1001 column=info1:name, timestamp=1571380877053, value=zhangsan
1001 column=info2:addr, timestamp=1571381241065, value=shanghai
1002 column=info1:age, timestamp=1571381266364, value=16
1002 column=info1:name, timestamp=1571381256744, value=lily
1002 column=info2:addr, timestamp=1571381276540, value=beijing
1003 column=info2:addr, timestamp=1571381290769, value=nanjing
3 row(s) in 0.0590 seconds
# 查看,左闭右开区间
hbase(main):044:0> scan 'test',{STARTROW=>'',ENDROW=>''}
# 查看,覆盖的版本,已经type
hbase(main):059:0> scan 'test',{RAW=>TRUE,VERSIONS=>3}
ROW COLUMN+CELL
1001 column=info1:age, timestamp=1571381227061, value=17
1001 column=info1:name, timestamp=1571382287224, type=DeleteColumn
1001 column=info1:name, timestamp=1571382179439, value=zhangsansan
1001 column=info1:name, timestamp=1571382130052, value=zhang
1001 column=info2:addr, timestamp=1571381241065, value=shanghai
1002 column=info1:age, timestamp=1571381266364, value=16
1002 column=info1:name, timestamp=1571381256744, value=lily
1002 column=info2:addr, timestamp=1571381276540, value=beijing
1003 column=info2:addr, timestamp=1571381290769, value=nanjingget:查询(最大范围是查RowKey)
# 查看一条数据,一个RowKey
hbase(main):041:0> get 'test',''
COLUMN CELL
info1:age timestamp=1571381227061, value=17
info1:name timestamp=1571380877053, value=zhangsan
info2:addr timestamp=1571381241065, value=shanghai
1 row(s) in 0.0050 seconds
# 查看某列
hbase(main):042:0> get 'test','','info1:name'
COLUMN CELL
info1:name timestamp=1571380877053, value=zhangsandelete:删除数据,在shell命令中必须指定到列,API中可以指定到列族
# 指定到列
hbase(main):054:0> delete 'test','','info1:name'alter:变更表信息
# 将info列族修改为可以存放3个版本
hbase(main):004:0> alter 'stu',{NAME=>'info',VERSIONS=>3}多版本查询
hbase(main):007:0> get 'stu','',{COLUMN=>'info:name',VERSIONS=>3}
COLUMN CELL
info:name timestamp=1571383299883, value=lucy
info:name timestamp=1571383293258, value=lily
最新文章
- 分享个刚写好的 android 的 ListView 动态加载类,功能全而代码少。
- 随手小代码——生成GUID
- 单元测试地二蛋 先弄个两个原生模块1个原始的一个jq插件
- LinkedHahsMap和HashMap的比较
- tab_切换
- python(二)数据类型
- cookie窃取和session劫持
- 接口是干爹, 继承是亲爹 ---JAVA
- VMware Workstation不能启用虚拟设备floppy0由于灭有相应的有效设备在主机上. 你要尝试在每次打开虚拟机电源时连接此虚拟设备?
- Google Map API 代码示例
- 记录下mybatis中#{}和${}传参的区别
- JVM常量池和八种基本数据及字符串
- Spark报错
- 全网最详细的一个超级好用的命令行工具【Cmder】的安装之后的一些配置(图文详解)
- C++异常处理解析: 异常的引发(throw), 捕获(try catch)、异常安全
- Ubuntu 14.10 下使用IDEA开发Spark应用
- js改变表单的内容样式
- SQL Server 字符串拼接、读取
- 以绑定的方式来启动service
- HDU 1234 (浙大计算机研究生复试上机考试-2005年) 开门人和关门人 (水)
热门文章
- HTTP和HTTPS概念
- nginx反向代理结合apache和php的配置示例
- SqlServer Stuff
- windows下根据tcp端口查询对应的进程id(端口被占用)
- 【err】tensorflow.python.framework.errors_impl.OutOfRangeError: RandomShuffleQueue
- mysql查询之获取第n高薪水
- mysql 5.7 sql_mode设置 坑
- 最新 淘友天下java校招面经 (含整理过的面试题大全)
- linux根据进程名终止进程
- Scala 函数入门之默认参数和带名参数