hbase常用命令

1、hbase 创建namespace

create_namespace ‘test’

2、给一个用户赋权namespace完全管理权限:

grant ‘hive’,’RWXCA’,’@test’

PS:在cdh启用了kerberos后,hive在映射表到hbase的时候。会报权限问题:

我当前kinit的用户hive用户,但是报错的时候说的是hive/bdp04@PICC.COM这个用户没有权限。然后我执行了:

grant ‘hive/bdp04′,’RWXCA’,’@default’
grant ‘hive/bdp04@PICC.COM’,’RWXCA’,’@default’

都还是报错。接着我在hbae shell输入whoami,结果显示当前的用户是:

hive@PICC.COM

这个和kinit是一直。然后我赋权:

grant ‘hive@PICC.COM’,’RWXCA’,’@default’

也是无效的。。。哎。。最后一通乱赋权成功了。下面语句有效:

grant ‘hive’,’RWXCA’,’@default’

3、在hive映射一张表到hbae,指定的namespace

CREATE EXTERNAL TABLE hbase_image_20181124(rk string,
IMAGE_ID STRING)
STORED BY ‘org.apache.hadoop.hive.hbase.HBaseStorageHandler’
WITH SERDEPROPERTIES (“hbase.columns.mapping” = “:key,
image:IMAGE_ID STRING”)
TBLPROPERTIES(“hbase.table.name” = “test:hbase_image_20181124″,”hbase.mapred.output.outputtable” = “hbase_image_20181124”);

4、hbase删除表:

disable ‘test:hbase_image_20181124’
drop ‘test:hbase_image_20181124’

5、hbase创建到namespace为test的表:
create ‘test:hbase_image_20181124′,’image’,SPLITS => [‘0000000000000000000fffffffffffffffffffff’,’1000000000000000000000000000000000000000′,’2000000000000000000000000000000000000000′,’3000000000000000000000000000000000000000′,’4000000000000000000000000000000000000000′,’5000000000000000000000000000000000000000′,’6000000000000000000000000000000000000000′,’7000000000000000000000000000000000000000′,’8000000000000000000000000000000000000000′,’9000000000000000000000000000000000000000′,’a000000000000000000000000000000000000000′,’b000000000000000000000000000000000000000′,’c000000000000000000000000000000000000000′,’d000000000000000000000000000000000000000′,’e000000000000000000000000000000000000000′,’f000000000000000000000000000000000000000′]

PS:SPLITS是一种预分区的方法,防止在第一次建表的时候由于rowkey不均衡,在region server上造成热点数据,同时也可以加快数据加载速度。hive到hbase有一种blukload的方法。

6、将一个字符串传给hbase shell执行:
echo “create ‘hbase_test3′,’family_base’,SPLITS => [‘2′,’4′,’6′,’8′,’a’,’d’]” | hbase shell

7、hbase shell执行一个代码文件:
hbase shell ./sample_commands.txt
参考地址

发表评论

电子邮件地址不会被公开。 必填项已用*标注