温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。


1.文档编写目的




Fayson在之前的文章详细介绍了CDH5.13的新功能,参考《​​CDH5.13和CM5.13的新功能​​》。CDH5.13中默认打包了Kudu,我们在安装Kudu的时候再也不用单独下载Kudu的Parcel包,与其他组件一样直接增加服务即可。另外这个版本Kudu1.5支持Sentry的database,table以及column的SELECT/INSERT授权,旧的版本只能支持数据库或表的全部授权,不能区分SELECT和INSERT,且不支持列授权。


本文主要介绍如何在Kudu1.5中使用Sentry授权。为了方便读者进行对比查看,Fayson会先基于Kudu旧版本(CDH5.11.2+Kudu1.3)进行Sentry授权测试,后面才会基于CDH5.13新版进行测试。


  • 内容概述

1.CDH5.11.2测试Kudu1.3的Sentry授权

2.CDH5.13测试Kudu1.5的Sentry授权


  • 测试环境

1.CDH5.11.2和CDH5.13集群

2.采用root用户操作

3.集群未启用Kerberos,该项不影响整个测试效果,Fayson只是为了操作方便。


  • 前置条件

1.CDH5.11.2和CDH5.13两个集群运行正常

2.两个集群Kudu已经安装,且已集成Impala,操作正常

3.两个集群都已启用Sentry并且配置正确


2.CDH5.11.2测试Kudu1.3的Sentry授权




CDH5.11.2安装Kudu需要单独下载Kudu的Parcel包,参考Fayson之前的文章《​​如何在CDH中安装Kudu&Spark2&Kafka​​​》,如何在CDH中启用Sentry请参考《​​如何在CDH未启用认证的情况下安装及使用Sentry​​​》,《​​如何在CDH启用Kerberos的情况下安装及使用Sentry(一)​​​》,《​​如何在CDH启用Kerberos的情况下安装及使用Sentry(二)​​​》和《​​如何在Hue中使用Sentry​​》。

 

以下测试过程基于CDH5.11.2集群已经完全就绪,Kudu,Impala和Sentry服务都运行正常,如何安装以及配置Fayson不再赘述。

 

1.创建admin管理员role,给该role赋予所有权限,并将hive组加入到该role。


2.首先在default下创建一张Kudu表my_first_table,并测试功能正常。

CREATE TABLE my_first_table(
 
id BIGINT,
 
name STRING,
 
PRIMARY KEY(id)
)
PARTITION BY HASH PARTITIONS 16STORED AS KUDU;INSERT INTO my_first_table VALUES (99, "sarah");INSERT INTO my_first_table VALUES (1, "john"), (2, "jane"), (3, "jim");select * from my_first_table;delete from my_first_table where id =99;select * from my_first_table;

如何在Kudu1.5中使用Sentry授权_用户登录

如何在Kudu1.5中使用Sentry授权_用户登录_02


3.使用fayson用户登录Impala没有任何权限。

如何在Kudu1.5中使用Sentry授权_用户登录_03


4.使用hive用户登录Impala,创建fayson_role的角色,赋予该角色my_first_table的ALL权限,并将fayson组加入到该角色。

create role fayson_role;grant role fayson_role to group fayson;grant all on table my_first_table to role fayson_role;

如何在Kudu1.5中使用Sentry授权_hive_04


再次使用fayson用户登录Impala,并查询。

sudo -u fayson impala-shell -i 172.31.28.12select * from my_first_table;

如何在Kudu1.5中使用Sentry授权_hive_05

发现已经赋权成功,fayson用户可以查询该表。


5.使用hive用户登录Impala,先drop掉fayson_role的角色,然后再次创建。然后分别赋予my_first_table表的INSERT权限,以及my_first_table表的列id的SELECT权限进行测试

drop role fayson_role;create role fayson_role;grant role fayson_role to group fayson;grant insert on table my_first_table to role fayson_role;grant select(id) on table my_first_table to role fayson_role;

如何在Kudu1.5中使用Sentry授权_h5_06

赋权失败,提示Kudu表只支持ALL权限。


3.CDH5.13测试Kudu1.5的Sentry授权




CDH5.13安装Kudu不需要额外下载Parcel包,直接安装即可。可以参考Fayson之前的文章《​​CDH安装前置准备​​​》和《​​CentOS6.5安装CDH5.13​​》


1.登录到CDH5.13集群,确定版本。

如何在Kudu1.5中使用Sentry授权_用户登录_07

如何在Kudu1.5中使用Sentry授权_hive_08


2.创建admin管理员role,给该role赋予所有权限,并将hive组加入到该role。首先在default下创建一张Kudu表my_first_table,并测试功能正常。该两个步骤与第二章相似,Fayson不再赘述。


3.使用fayson用户登录Impala没有任何权限。

如何在Kudu1.5中使用Sentry授权_h5_09


4.使用hive用户登录Impala,创建fayson_role的角色,赋予该角色my_first_table的ALL权限,并将fayson组加入到该角色。

create role fayson_role;grant role fayson_role to group fayson;grant all on table my_first_table to role fayson_role;

如何在Kudu1.5中使用Sentry授权_h5_10


再次使用fayson用户登录Impala,并查询。

sudo -u fayson impala-shell -i 172.31.28.12select * from my_first_table;

如何在Kudu1.5中使用Sentry授权_h5_11


发现已经赋权成功,fayson用户可以查询该表。


5.使用hive用户登录Impala,先drop掉fayson_role的角色,然后再次创建。然后赋予my_first_table表的SELECT权限。

drop role fayson_role;create role fayson_role;grant role fayson_role to group fayson;grant select on table my_first_table to role fayson_role;

如何在Kudu1.5中使用Sentry授权_h5_12


使用fayson用户进行测试

select * from my_first_table;INSERT INTO my_first_table VALUES (990, "sarah");

如何在Kudu1.5中使用Sentry授权_用户登录_13

可以看到fayson用户可以执行select,但是不能执行insert。


6.使用hive用户登录Impala,先drop掉fayson_role的角色,然后再次创建。然后赋予my_first_table表的列id的SELECT权限。

drop role fayson_role;create role fayson_role;grant role fayson_role to group fayson;grant select(id) on table my_first_table to role fayson_role;

如何在Kudu1.5中使用Sentry授权_h5_14


使用fayson用户登录进行测试

select * from my_first_table;select id from my_first_table;

如何在Kudu1.5中使用Sentry授权_用户登录_15


可以看到fayson用户无法select全表,只能select单个id字段。说明Kudu表的column授权生效。


4.总结




1.CDH5.13,Kudu1.5之前的旧版Kudu,Sentry授权只能支持数据库或表的ALL权限,不能区分SELECT和INSERT权限,且不支持列授权。


2.CDH5.13,Kudu1.5版本中,Sentry授权支持数据库,表,字段的ALL,SELECT,INSERT权限。



为天地立心,为生民立命,为往圣继绝学,为万世开太平。

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。





推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。

如何在Kudu1.5中使用Sentry授权_hive_16

原创文章,欢迎转载,转载请注明:转载自微信公众号Hadoop实操