在前面我们介绍了hbase主要以表的形式进行存储,并且已经实现了hbase的部署,那么这里我们来演示以下hbase的使用。
这里我们主要是使用hbase命令给让大家入门。首先进入到hbase的bin目录下,我们执行
hbase shell命令就可以进入到hbase的命令执行环境中
然后我们在hbase的命令行中敲如help命令,就可以看到hbase shell中所有的命令:
上图我们可以看到所有关于hbase shell的命令,不同的命令在不同的分组里面,下面我们挨个来介绍下:
一、ddl命令
这个ddl命令主要是用来操作表的。包含的命令有:
alter, alter_async, alter_status, clone_table_schema, create, describe, disable, disable_all, drop, drop_all, enable, enable_all, exists, get_table, is_disabled, is_enabled, list, list_regions, locate_region, show_filters
1)alter命令
描述:修改表 语法: alter ${表名} ${属性} 示例:alter ‘test’,{NAME=>‘list1’,VERSIONS=>9},{NAME=>‘list2’,VERSIONS=>9}
2)alter_async命令
描述:异步修改表,不等待 语法: alter_async ${表名} ${属性} 示例:alter_async‘test’,{NAME=>‘list1’,VERSIONS=>9},{NAME=>‘list2’,VERSIONS=>9}
3)alter_status命令
描述:获取alter命令的执行状态 语法:alter_status ${表名} 示例:alter_status‘test’
4)clone_table_schema命令
描述:克隆某张表的schema 语法:clone_table ${原表名} ${新表名} ${可选参数} 示例:clone_table 'source_table', 'new_table'
5)create命令
描述:创建新表 语法:create ${表名} ${列族名} 示例:create 'test', 'f1'
6)describe命令
描述:查看表结构 语法:describe ${表名} 示例:describe 'test'/desc 'test'
7)disable命令
描述:使表不可用 语法:disable ${表名} 示例:disable 'test'
8)enable命令
描述:使表可用 语法:enable ${表名} 示例:enable 'test'
9)disable_all命令
描述:使所有表不可用 语法:disable_all ${正则表达式} 示例:disable_all 'tes.*' //停用掉以tes开头的表
10)enable_all命令
描述:使所有表不可用 语法:enable_all ${正则表达式} 示例:enable_all 'tes.*' //启用test开头的表
11)drop命令
描述:删除表 语法:drop ${表名} 示例:drop 'test'
12)drop_all命令
描述:删除表 语法:drop ${正则表达式} 示例:drop 'tes.*'
13)exists命令
描述:是否存在某张表 语法:exists ${表名} 示例:exists 'test'
14)get_table命令
描述:获取表名 语法:get_table ${表名} 示例:get_table 'test'
15)is_disabled命令
描述:获取表是否被禁 语法:is_disabled ${表名} 示例:is_disabled 'test'
16)is_enabled命令
描述:获取表是否可用 语法:is_enabled ${表名} 示例:is_enabled 'test'
17)list命令
描述:获取所有的表名 语法:list 示例:list
18)list_regions命令
描述:获取表的region分布 语法:list_regions ${表名} 示例:list_regions ${表名}
19)locate_region命令
描述:获取region分布 语法:locate_region ${表名}, ${key} 示例:locate_region 'test','1701069113371.b6b9f50bc00a3497bba01df570f0bc23'
20)show_filters命令
描述:查看有哪些filter 语法:show_filters 示例:show_filters
二、namespace
主要用来操作名称空间的,一般用于资源隔离。包含的名称有:
alter_namespace, create_namespace, describe_namespace, drop_namespace, list_namespace, list_namespace_tables
1)create_namespace命令
描述:创建名称空间 语法:create_namespace ${名称空间名} 示例:create_namespace 'test1'
2)describe_namespace命令
描述:查看名称空间 语法:describe_namespace ${名称空间名} 示例:describe_namespace 'test1'
3)drop_namespace命令
描述:查看名称空间 语法:drop_namespace ${名称空间名} 示例:drop_namespace 'test1'
4)list_namespace命令
描述:列举所有名称空间 语法:list_namespace 示例:list_namespace
5)list_namespace_tables命令
描述:查询指定名称空间的表 语法:list_namespace_tables ${名称空间名} 示例:list_namespace_tables 'default'
6)alter_namespace命令
描述:修改名称空间的表 语法:alter_namespace ${名称空间名} ${属性} 示例:alter_namespace 'ns', {METHOD => 'set', 'PROPERTY_NAME' => 'PROPERTY_VALUE'}
三、dml
这是关于表数据相关的命令,整体命令有:
append, count, delete, deleteall, get, get_counter, get_splits, incr, put, scan, truncate, truncate_preserve
1)append命令
描述:在某行对应的某列值后面拼接某个字符串 语法:append ${表名} ${行键} ${列族:列名} ${值} 示例:append 'test','001','f1:name',"-test"
2)count命令
描述:统计某张表有多少行数据 语法:count ${表名} 示例:count 'test'
3)delete命令
描述:删除某行的数据 语法:delete ${行键} ${列族名:列名} 示例:count 'test','001','f1:name'
4)deleteall命令
描述:删除某行的数据 语法:delete ${表名} ${行键} 示例:delete 'test','001'
5)get命令
描述:获取某行的值 语法:get ${表名} ${行键} 示例:get 'test','001'
6)get_counter命令
描述:获取计数器 语法:get_counter ${表名} ${行键} ${列族} 示例:get_counter 'test', '002', 'f1'
7)get_splits命令
描述:获取表的分隔符 语法:get_splits ${表名} 示例:get_splits 'test'
8)incr命令
描述:原子计数 语法:incr ${表名} ${行键} ${列族:列名} 1 示例:incr 'test','001','f1:name' 1
9)put命令
描述:赋值 语法:incr ${表名} ${行键} ${列族:列名} ${值} 示例:incr 'test','001','f1:name',"张三"
10)scan命令
描述:遍历表的值 语法:scan ${表名} 示例:scan 'test'
11)truncate命令
描述:清空表,会清除掉分区 语法:truncate ${表名} 示例:truncate 'test'
12)truncate_preserve命令
描述:清空表,只清空数据,不清空分区 语法:truncate_preserve ${表名} 示例:truncate_preserve 'test'
四、tools
这里主要是一些维护hbase的命令信息,包含的命令有:
assign, balance_switch, balancer, balancer_enabled, catalogjanitor_enabled, catalogjanitor_run, catalogjanitor_switch, cleaner_chore_enabled, cleaner_chore_run, cleaner_chore_switch, clear_block_cache, clear_compaction_queues, clear_deadservers, close_region, compact, compact_rs, compaction_state, flush, is_in_maintenance_mode, list_deadservers, major_compact, merge_region, move, normalize, normalizer_enabled, normalizer_switch, split, splitormerge_enabled, splitormerge_switch, stop_master, stop_regionserver, trace, unassign, wal_roll, zk_dump
1)assign命令
描述:重新分配region 语法:assign ${region_name} 示例:assign 'xxxxxx'
2)balance_switch命令
描述:开启或者关闭自动均衡 语法:balance_switch true/false 示例:balance_switch true
3)balancer命令
描述:立即均衡集群的region数量 语法:balancer 示例:balancer
4) balancer_enabled命令
描述:立即均衡集群的region数量 语法:balancer 示例:balancer
5)balancer_enabled命令
描述:查看集群均衡状态 语法:balancer_enabled 示例:balancer_enabled
6)catalogjanitor_enabled命令
描述:查看当前目录管理器的开启状态 语法:balancer_enabled 示例:balancer_enabled
7)catalogjanitor_run命令
描述:开始运行目录管理器 语法:catalogjanitor_run 示例:catalogjanitor_run
8)catalogjanitor_switch命令
描述:启用/停用目录管理器 语法:catalogjanitor_switch true/false 示例:catalogjanitor_switch true
9)cleaner_chore_enabled命令
描述:定时清理HFile是否开启 语法:cleaner_chore_enabled 示例:cleaner_chore_enabled
10)cleaner_chore_run命令
描述:开启定时清理HFile 语法:cleaner_chore_run 示例:cleaner_chore_run
11) cleaner_chore_switch命令
描述:开启/关闭定时清理HFile 语法:cleaner_chore_switch true/false 示例:cleaner_chore_switch true
12)clear_block_cache命令
描述:清除指定表的缓存 语法:clear_block_cache ${表名} 示例:clear_block_cache 'test'
13) clear_compaction_queues命令
描述:清除合并队列的任务 语法:clear_compaction_queues ${节点ip:60020} 示例:clear_compaction_queues '192.168.31.30:60020'
14)clear_deadservers命令
描述:清除下线的节点 语法:clear_deadservers 示例:clear_deadservers
15)compact命令
描述:合并某表 语法:compact ${表名} ${列族名} 示例:compact 'test' / compact 'test','f1'
16)compact_rs命令
描述:压缩一个regionserver上的所有region 语法:compact ${ip,60020} 示例:compact_rs '192.168.31.30,60020'
17)compaction_state命令
描述:查看合并状态 语法:compaction_state 示例:compaction_state
18)flush命令
描述:手动刷新memorystore 语法:flush ${表名} 示例:flush 'test'
19)is_in_maintenance_mode命令
描述:是否处于maintenance模式(hbck的时候就是处于这个模式) 语法:is_in_maintenance_mode 示例:is_in_maintenance_mode
20)list_deadservers命令
描述:列出下线的节点 语法:list_deadservers 示例:list_deadservers
21)major_compact命令
描述:对Region下的HStore的所有StoreFile执行合并操作,最终的结果是整理合并出一个文件 语法:major_compact ${表名} 示例:major_compact 'test'
22)merge_region命令
描述:两个region合并 语法:major_compact ${region1名} ${region2名} 示例:merge_region ‘2b577fcd3ca0924b9b9160516708eb3d’,‘de3e0904e2e539a0c8a8946cdd796ccc’
23)move命令
描述:移动某个region 语法:major_compact ${region名} ${target节点} 示例:move '1e4b0ca8c609fad16d10a8653c076880','d21010u07-62-81,60020,1576681797787'
24)normalize命令
描述:为所有设置了NORMALIZATION_ENABLED标志的表触发region normalizer 语法:normalize 示例:normalize
25)normalizer_enabled命令
描述:查询region normalizer的状态。 语法:normalizer_enabled 示例:normalizer_enabled
26)normalizer_switch命令
描述:启用/禁用region normalizer 语法:normalizer_switch true 示例:normalizer_switch false
27)split命令
描述:分割整个表,或者传入一个region来分割单个region。使用第二个参数,可以为该region指定一个显式的split key。 语法:split ${表名} 示例:split 'test'
28)splitormerge_enabled命令
描述:设置分割还是合并 语法:splitormerge_enabled SPLIT/MERGE 示例:splitormerge_enabled 'SPLIT'
29)splitormerge_switch命令
描述:设置分割还是合并 语法:splitormerge_enabled SPLIT/MERGE true/false 示例: splitormerge_switch 'SPLIT', true
30)trace命令
描述:启动或停止使用HTrace跟踪。 语法:trace start/stop/status 示例:trace 'start'
31)unassign命令
描述:取消region分配。取消分配将关闭当前位置的region,然后再重新打开它。传递'true'来强制取消分配 语法:unassign ${regionname} true 示例:unassign 'xxxxxxx'
32)wal_roll命令
描述:滚动日志写入器。也就是说,开始将日志消息写入一个新文件。regionserver的名称应该作为参数给出。 语法:unassign ${ip,60020,${未知}} 示例:unassign host187.example.com,60020,1289493121758
33)zk_dump命令
描述:ZooKeeper查看HBase集群的转储状态 语法:zk_dump 示例:zk_dump
五、replication
这里主要是副本相关的命令,包含的命令有:
add_peer, append_peer_exclude_namespaces, append_peer_exclude_tableCFs, append_peer_namespaces, append_peer_tableCFs, disable_peer, disable_table_replication, enable_peer, enable_table_replication, get_peer_config, list_peer_configs, list_peers, list_replicated_tables, remove_peer, remove_peer_exclude_namespaces, remove_peer_exclude_tableCFs, remove_peer_namespaces, remove_peer_tableCFs, set_peer_bandwidth, set_peer_exclude_namespaces, set_peer_exclude_tableCFs, set_peer_namespaces, set_peer_replicate_all, set_peer_serial, set_peer_tableCFs, show_peer_tableCFs, update_peer_config
这里我用的比较少,所以暂时不演示了。
六、snapshots
这是快照相关的命令,包含的命令有:
clone_snapshot, delete_all_snapshot, delete_snapshot, delete_table_snapshots, list_snapshots, list_table_snapshots, restore_snapshot, snapshot
1)clone_snapshot命令
描述:通过克隆快照内容创建一个新表。不涉及数据的拷贝。 语法:clone_snapshot 'snapshotName', 'tableName'
2)delete_all_snapshot命令
描述:删除所有匹配给定正则表达式的快照 示例:delete_all_snapshot 's.*'
3)delete_snapshot命令
描述:删除一个指定快照。 语法:delete_snapshot 'snapshotName'
4)list_snapshots命令
描述:列出所有的快照(通过打印名称和相关信息)。可选择的正则表达式参数可以用来通过快照名筛选输出。 语法:list_snapshots
5)restore_snapshot命令
描述:恢复指定的快照。还原将替换原始表的内容,将内容恢复到快照状态。该表必须禁用。 语法:restore_snapshot 'snapshotName'
6)snapshot命令
描述:创建指定表的快照。 语法:snapshot 'sourceTable', 'snapshotName'
七、configuration
这里主要是更新配置的命令,包含的命令有:
update_all_config, update_config
八、quotas
这里主要是为表设置额外的配置,包含的命令有:
list_quota_snapshots, list_quota_table_sizes, list_quotas, list_snapshot_sizes, set_quota
这里一般使用的比较少,所以忽略
九、security
这里主要是一些安全性的配置,运维工作会用的比较多,包含的命令有:
grant, list_security_capabilities, revoke, user_permission
1)grant命令
描述:赋予用户特定的权限。权限是从集合“RWXCA”来的零或多个字母。READ('R'), WRITE('W'), EXEC('X'), CREATE('C'), ADMIN('A')。注意:组和用户以相同的方式被授予访问权限,但组的前缀是“@”字符。同样,也指定了表和命名空间,但命名空间的前缀是“@”字符。 语法:grant 'hduser', 'RW', 'ns1:t1', 'f1', 'col1'
2)list_security_capabilities命令
描述:列出支持的安全功能。 语法:list_security_capabilities
3)revoke命令
描述:取消用户的访问权限。注意:组和用户以相同的方式被授予访问权限,但组的前缀是“@”字符。同样,也指定了表和命名空间,但命名空间的前缀是“@”字符。 语法:revoke 'bobsmith', 'ns1:t1', 'f1', 'col1'
4)user_permission命令
描述:显示特定用户的所有权限。语法: user_permission table注意:命名空间必须以'@'字符做为前缀。 语法:user_permission '^[A-C].*'
十、procedures
这里主要是与进程相关的命令,慎用。包含的命令有:
list_locks, list_procedures
十一、visibility labels
这里主要是可见性标签的语法,包含的命令有:
add_labels, clear_auths, get_auths, list_labels, set_auths, set_visibility
1)add_labels
描述:添加一组可见性标签。 语法:add_labels [label1, label2] 示例:add_labels ['SECRET','PRIVATE']
2)clear_auths
描述:清除用户或组的可见性标签。 语法:clear_auths 'user',[label1, label2] 示例:clear_auths 'user1', ['SECRET','PRIVATE']
3)get_auths
描述:获取为特定用户或组设置的可见性标签集。 语法:get_auths 'user' 示例:get_auths 'user1'
4)list_labels
描述:列出系统中定义的可见性标签。 语法:list_labels 示例:list_labels
5)set_auths
描述:为用户或组添加一组可见性标签。 语法:set_auths 'user',[label1, label2] 示例: set_auths 'user1', ['SECRET','PRIVATE']
十二、rsgroup
这里主要是regionserver相关的命令,运维查问题的时候使用比较多,包含的命令有:
add_rsgroup, balance_rsgroup, get_rsgroup, get_server_rsgroup, get_table_rsgroup, list_rsgroups, move_namespaces_rsgroup, move_servers_namespaces_rsgroup, move_servers_rsgroup, move_servers_tables_rsgroup, move_tables_rsgroup, remove_rsgroup, remove_servers_rsgroup
这些我用的也少,暂时不介绍了。
还没有评论,来说两句吧...