Hbase常用Shell命令
status 查看系统状态
hbase(main):010:0> status
1 active master, 0 backup masters, 4 servers, 0 dead, 6.5000 average load
version 查看版本号
hbase(main):011:0> version
1.2.0-cdh5.7.2, rUnknown, Fri Jul 22 12:20:40 PDT 2016
table_help 查看提示信息
hbase(main):012:0> table_help
Help for table-reference commands.
You can either create a table via 'create' and then manipulate the table via commands like 'put', 'get', etc.
See the standard help information for how to use each of these commands.
However, as of 0.96, you can also get a reference to a table, on which you can invoke commands.
For instance, you can get create a table and keep around a reference to it via:
hbase> t = create 't', 'cf'
Or, if you have already created the table, you can get a reference to it:
hbase> t = get_table 't'
You can do things like call 'put' on the table:
hbase> t.put 'r', 'cf:q', 'v'
which puts a row 'r' with column family 'cf', qualifier 'q' and value 'v' into table t.
To read the data out, you can scan the table:
hbase> t.scan
which will read all the rows in table 't'.
Essentially, any command that takes a table name can also be done via table reference.
Other commands include things like: get, delete, deleteall,
get_all_columns, get_counter, count, incr. These functions, along with
the standard JRuby object methods are also available via tab completion.
For more information on how to use each of these commands, you can also just type:
hbase> t.help 'scan'
which will output more information on how to use that command.
You can also do general admin actions directly on a table; things like enable, disable,
flush and drop just by typing:
hbase> t.enable
hbase> t.flush
hbase> t.disable
hbase> t.drop
Note that after dropping a table, your reference to it becomes useless and further usage
is undefined (and not recommended).
表的管理
create 创建表
hbase(main):014:0> create 'xt','xcf'
0 row(s) in 2.5340 seconds
=> Hbase::Table - xt
hbase(main):015:0>
list 查看表
hbase(main):015:0> list
TABLE
...
xt
17 row(s) in 0.0200 seconds
=> [..."xt"]
hbase(main):016:0>
describe 表的描述
hbase(main):017:0> describe 'xt'
Table xt is ENABLED
xt
COLUMN FAMILIES DESCRIPTION
{NAME => 'xcf', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE',
TTL => 'FOREVER', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'}
1 row(s) in 0.0500 seconds
disable 表的禁用
hbase(main):038:0> disable 'xt'
0 row(s) in 8.7530 seconds
drop 表的删除
hbase(main):039:0> drop 'xt'
0 row(s) in 2.3130 seconds
exsits 判断是否存在
hbase(main):040:0> exists 'xt'
Table xt does not exist
0 row(s) in 0.0110 seconds
数据操作
put 增加和修改数据
向指定的列族中插入数据
hbase(main):019:0> put 'xt','1','xcf:col_name1','col_value1'
0 row(s) in 0.0080 seconds
hbase(main):020:0> put 'xt','1','xcf:col_name2','col_value2'
0 row(s) in 0.0050 seconds
get 查询数据
hbase(main):021:0> get 'xt','1'
COLUMN CELL
xcf:col_name1 timestamp=1496997489039, value=col_value1
xcf:col_name2 timestamp=1496997502916, value=col_value2
2 row(s) in 0.0110 seconds
hbase(main):022:0> get 'xt','1',{COLUMN => 'xcf:col_name1'}
COLUMN CELL
xcf:col_name1 timestamp=1496997489039, value=col_value1
1 row(s) in 0.0520 seconds
hbase(main):023:0>
delete 删除数据
hbase(main):023:0> delete 'xt','1','xcf:col_name1'
0 row(s) in 0.0280 seconds
hbase(main):024:0> get 'xt','1'
COLUMN CELL
xcf:col_name2 timestamp=1496997502916, value=col_value2
1 row(s) in 0.0030 seconds
hbase(main):026:0> deleteall 'xt','1'
0 row(s) in 0.0030 seconds
hbase(main):028:0> get 'xt','1'
COLUMN CELL
0 row(s) in 0.0070 seconds
scan 扫描全部数据
hbase(main):029:0> put 'xt','1','xcf:col1','123'
0 row(s) in 0.0230 seconds
hbase(main):030:0> put 'xt','2','xcf:col1','123'
0 row(s) in 0.0040 seconds
hbase(main):031:0> put 'xt','3','xcf:col1','123'
0 row(s) in 0.0040 seconds
hbase(main):032:0> put 'xt','4','xcf:col1','123'
0 row(s) in 0.0040 seconds
hbase(main):033:0> scan 'xt'
ROW COLUMN+CELL
1 column=xcf:col1, timestamp=1496998219258, value=123
2 column=xcf:col1, timestamp=1496998223993, value=123
3 column=xcf:col1, timestamp=1496998227824, value=123
4 column=xcf:col1, timestamp=1496998230678, value=123
4 row(s) in 0.0140 seconds
count 统计表个数
hbase(main):034:0> count 'xt'
4 row(s) in 0.0170 seconds
=> 4
truncate 清空表数据
hbase(main):035:0> truncate 'xt'
Truncating 'xt' table (it may take a while):
- Disabling table...
- Truncating table...
0 row(s) in 104.8850 seconds
hbase(main):036:0> count 'xt'
0 row(s) in 23.6480 seconds
=> 0
hbase(main):037:0>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
2015-06-09 《敦煌》—— 读后总结
2014-06-09 剑指OFFER之二叉树中和为某一值的路径(九度OJ1368)