HBase的常用操作命令
1.进入HBase
脚本客户端#hbase shell#进入HBase脚本客户端
> whoami#查看当前登录用户
>状态#查看HBase节点信息
>版本#查看HBase版本
2.查看HBase所有表
> list#查看HBase里面的所有表
> create_namespace'ns'#创建命名空间
> drop_namespace'ns'#删除命名空间
> describe_namespace'ns'#查看命名空间
> list_namespace#列出所有命名空间
>创建'ns :tablename','cf'#在namespace下创建表
> list_namespace_tables'ns'#查看namespace下的表
3.表操作
创建表语法create
,{NAME => ,VERSIONS => }
>创建'tablename','columnfamily'#创建HBase表名和列族
删除表首先禁用,然后drop
>禁用'tablename'
> drop'tablename'
查看表的结构
- 语法:describe>
描述'tablename'
修改表结构首先禁用,然后启用
- 语法:alter't1 ',{NAME =>'f1 '},{NAME =>'f2',METHOD =>'delete'}
>禁用'tablename' - 修改表tablename的cf的TTL为180天
> alter'tablename',{NAME =>'body',TTL >'15552000'},{NAME =>'meta',TTL =>'15552000'}
> enable'表名”
4.增加改查
添加数据
- 语法:put
,,,,
- 例如:给表t1的添加一行记录:rowkey是rowkey1,family name:f1,column name:col1,value:value01,timestamp:系统默认
> put't1','rowkey1','f1:col1','value01'
查询行记录
- 语法:get,,[,....]
- 例如:查询表t1,rowkey1中的f1下的col1的值
> get't1','rowkey1','f1:col1'
扫描表
-语法:scan,{COLUMNS => [,....],LIMIT => num}
- 另外,还可以添加STARTROW,TIMERANGE和FITLER等高级功能
- 例如:扫描表t1的前5条数据
> scan't1',{LIMIT => 5}
查询表中的数据行数
- 语法:count,{INTERVAL => intervalNum,CACHE => cacheNum}
- INTERVAL设置多少行显示一次及对应的rowkey,默认1000; CACHE每次去取的缓存区大小,默认是10,调整该参数可提高查询速度
- 例如,查询表t1中的行数, - 100条显示一次,缓存区为500
> count't1 ',{INTERVAL => 100,CACHE => 500}
删除行中的某个列值
- 语法:delete,,,,必须指定列名
- 例如:删除表t1,rowkey1中的f1:col1的数据
> delete't1','rowkey1','f1:col1'
删除行
- 语法:deleteall < table>,,,,可以不指定列名,删除整行数据
- 例如:删除表t1,rowk001的数据
> deleteall't1','rowkey1'
删除表中的所有数据
- 语法:truncate
- 其具体过程是:disable table - > drop table - > create table
- 例如:删除表t1的所有数据
>截断't1'
5.权限管理
分配权限
- 语法:grant
参数后面用逗号分隔
- 权限用五个字母表示:“RWXCA”。
- READ('R'),WRITE('W'),EXEC('X'),CREATE('C'),ADMIN('A')
- 例如,给用户'test'分配对表t1有读写的权限,
>授权'测试','RW','t1'
查看权限
- 语法:user_permission
- 例如,查看表t1的权限列表
> user_permission't1'
收回权限
- 与分配权限类似,语法:revoke
- 例如,收回test用户在表t1上的权限
> revoke'test ','t1'
> grant'admin''RW''@ ns'#授权admin用户对ns下的写权限
> revoke'admin''@ ns'#回收admin用户对ns的所有权限
6.Region管理
移动区域
- 语法:移动'encodeRegionName','ServerName'
- encodeRegionName指的regioName后面的编码,ServerName指的是主状态的区域服务器列表
>移动'4343995a58be8e5bbc739af1e91cd72d','db-41。 xxx.xxx.org,60020,1390274516739'
开启/关闭区域
- 语法:balance_switch true | false
> balance_switch
手动拆分
- 语法:拆分'regionName','splitKey'
手动触发major compaction
#语法: -
压缩所有区域在表中:
> major_compact't1' -
压缩整个区域:
> major_compact'r1' -
在区域内压缩单个列族:
> major_compact'r1','c1'
- 在表中压缩单个列族:
> major_compact't1','c1'
7.配置管理及节点重启
hdfs配置目录:/ etc / hadoop / conf
#同步hdfs配置
cat / home / hadoop / slaves | xargs -i -t scp /etc/hadoop/conf/hdfs-site.xml hadoop @ { ip}:/ etc / hadoop / conf / hdfs-site.xml
#关闭
cat / home / hadoop / slaves | xargs -i -t ssh hadoop @ {ip}“sudo /data/opt/cloudera/parcels/CDH-5.9 .1-1.cdh5.9.1.p0.4 / lib / hadoop / sbin / hadoop-daemon.sh --config / etc / hadoop / conf stop datanode“
#启动
cat / home / hadoop / slaves | xargs -i - t ssh hadoop @ {ip}“sudo /data/opt/cloudera/parcels/CDH-5.9.1-1.cdh5.9.1.p0.4/lib/hadoop/sbin/hadoop-daemon.sh --config / etc / hadoop / conf start datanode“
修改hbase配置:/ etc / hbase / conf
#同步hbase配置
cat / home / hadoop / hbase / conf / regionservers | xargs -i -t scp /home/hadoop/hbase/conf/hbase-site.xml hadoop @ {ip }:/家庭/ Hadoop的/ HBase的/ conf目录/ HBase的-site.xml中
#hadoop fs -du / hbase#所有regionserver中所有表大小
#hadoop fs -dus / hbase#当前regionserver中所有表大小#count'tablename
',INTERVAL => 10,CACHE => 1000#统计表行数