hbase安装完成之后,给我们提供了一个命令行客户端,hbase shell
命名空间有关的命令:namespace组
| 增删改查 |
| create_namespace "demo" |
| drop_namespace "demo" |
| list_namespace |
| list_namespace_tables "hbase" |
| describe_namespace "default" |
| |
| 命名空间位置: |
| 1. 去hdfs中查询:/hbase/data |
| 2. 去zookeeper中查询:ls /hbase/namespace |
表有关的命令:DDL组
| 创建表、删除表 、查询表、修改表 |
| 表是由列簇和行键组成的,创建表的时候只需要指定列簇即可 |
| list:查看default命名空间的表 |
| |
| |
| 创建表:至指定列族名,不需指定具体的列 |
| 语法:create 'tablename', 'column_family01列族名', 'column_family02列族名' |
| hbase(main)> create 'student','info' |
| hbase(main)> create 'test:demo', "studentInfo", "classInfo" |
| |
| |
| 描述表 |
| hbase(main):019:0> describe "demo:stu" |
| |
| |
| is_disabled "demo:stu" # 显示当前表是否是禁用状态,意味着当前这个表的所有region停止对外服务了,客户找不到信息了 |
| disable "demo:stu" # 禁用表stu |
| drop "demo:stu" # 删除表stu,只有禁用了表之后才能删除 |
| |
| describe "demo:stu" |
| exists "demo:stu" |
| |
| is_enabled "demo:stu" # 是否启用 |
| list_regions "demo:stu" # 显示demo下有几个region |
| |
| # 增加一个列族 |
| alter "test:demo", "classInfo" |
| |
| 注意事项: |
| 1、删除表的时候表必须被禁用 |
| 2、操作表的时候最好加上命令空间 "命名空间:表名" |
| |
| 如果没有加命令空间。那么表默认使用的是default命名空间 |
表数据有关的命令
| |
| hbase(main):027:0> describe "demo:stu" |
| Table demo:stu is ENABLED |
| demo:stu |
| COLUMN FAMILIES DESCRIPTION |
| {NAME => 'classInfo', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODIN |
| G => 'NONE', TTL => 'FOREVER', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_S |
| COPE => '0'} |
| {NAME => 'studentInfo', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCOD |
| ING => 'NONE', TTL => 'FOREVER', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION |
| _SCOPE => '0'} |
| 2 row(s) in 0.0560 seconds |
| |
| |
| hbase(main):028:0> put "demo:stu", "s001", "classInfo:cname", "1911" |
| 0 row(s) in 0.5020 seconds |
| |
| 增加、删除、修改、查询表数据 |
| hbase中的表数据有行键和列族组成,添加数据的时候只能一列一列添加 |
| 查询数据 |
| 1、scan:查询的表中所有行的数据 |
| scan "表名",{COLUMNS=>["",""],LIMIT=>10} |
| 2、get:查询指定row key的数据 |
| get "表名","行键",{COLUMN=>["",""]} |
| 增加修改数据 |
| put "表名","行键","列簇:列名","value" |
| |
| |
| hbase(main):029:0> scan "demo:stu" |
| ROW COLUMN+CELL |
| s001 column=classInfo:cname, timestamp=1662984205030, value=1911 |
| 1 row(s) in 0.0620 seconds |
| |
| |
| hbase(main):030:0> put "demo:stu", "s001", "studentInfo:name", "zs" |
| 0 row(s) in 0.0290 seconds |
| |
| |
| hbase(main):031:0> put "demo:stu", "s001", "studentInfo:age", "11" |
| 0 row(s) in 0.0200 seconds |
| |
| |
| hbase(main):032:0> scan "demo:stu" |
| ROW COLUMN+CELL |
| s001 column=classInfo:cname, timestamp=1662984205030, value=1911 |
| s001 column=studentInfo:age, timestamp=1662984351689, value=11 |
| s001 column=studentInfo:name, timestamp=1662984337491, value=zs |
| 1 row(s) in 0.0270 seconds |
| |
| |
| hbase(main):033:0> put "demo:stu", "s001", "studentInfo:name", "ls" |
| 0 row(s) in 0.0140 seconds |
| |
| |
| hbase(main):034:0> scan "demo:stu" |
| ROW COLUMN+CELL |
| s001 column=classInfo:cname, timestamp=1662984205030, value=1911 |
| s001 column=studentInfo:age, timestamp=1662984351689, value=11 |
| s001 column=studentInfo:name, timestamp=1662984385843, value=ls |
| 1 row(s) in 0.0450 seconds |
| |
| |
| hbase(main):004:0> scan "demo:stu", {COLUMNS=>["studentInfo:name", "studentInfo:age"],LIMIT=>2} |
| ROW COLUMN+CELL |
| s001 column=studentInfo:age, timestamp=1662984351689, value=11 |
| s001 column=studentInfo:name, timestamp=1662984385843, value=ls |
| 1 row(s) in 0.4740 seconds |
| |
| |
| hbase(main):005:0> get "demo:stu", "s001" |
| COLUMN CELL |
| classInfo:cname timestamp=1662984205030, value=1911 |
| studentInfo:age timestamp=1662984351689, value=11 |
| studentInfo:name timestamp=1662984385843, value=ls |
| 1 row(s) in 0.0750 seconds |
| |
| |
| hbase(main):009:0> get "demo:stu", "s001", {COLUMNS=>["classInfo:cname"]} |
| COLUMN CELL |
| classInfo:cname timestamp=1662984205030, value=1911 |
| 1 row(s) in 0.0110 seconds |
| |
| |
| 删除数据 |
| 1、delete:删除指定行的指定列的数据 |
| 2、deleteall:除了具备delete的功能,还具备删除一整行数据 |
| 3、truncate:清空表数据 |
| |
| |
| hbase(main):013:0> delete "demo:stu", "s001", "classInfo: cname" |
| 0 row(s) in 0.1610 seconds |
| |
| |
| hbase(main):014:0> deleteall "demo:stu", "s001" |
| 0 row(s) in 0.0480 seconds |
| |
| |
| count "demo:stu" |
| |
| |
| hbase(main):015:0> truncate "demo:stu" |
| |
| |
| 【注意事项】 |
| 1、hbase中的shell中退格键无法使用的,如果删除的话 crtl+退格键 |
| 2、hbase中除了自带命令以外,写的名字数据必须使用单引号或者双引号包裹 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?