温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。
Fayson的github:
提示:代码块部分可以左右滑动查看噢
1.文档编写目的
用户在CDH集群中启用了Sentry后,会遇到在/user/hive/warehouse仓库目录之外的目录建库后,在HDFS上查看该数据库及库下的表和文件ACL权限没有同步。本篇文章Fayson主要介绍如何使用Sentry管理Hive仓库目录外的其他目录的ACL同步。
Fayson在前面也有介绍Sentry权限同步的文章《如何使用Sentry管理Hive外部表权限》、《如何使用Sentry管理Hive外部表(补充)》和《Sentry赋予server1权限给hive以外用户时ACL不同步问题分析》
- 测试环境说明
1.CM5.15.0和CDH5.14.2
2.ACL问题复现
用于测试的testa用户所属组为groupa,使用testa用户访问Hive创建一个testdatabase库,并在该库下创建test_temp表插入测试数据。
1.使用testa用户访问Hive,执行建库建表及插入数据操作
grant all on database testdatabase to role groupa_role;
create database testdatabase location '/dw/testdatabase.db';
use testdatabase;
create table test_temp (id int, name string);
insert into table test_tmp values(1,'fayson');
grant all on database testdatabase to role groupa_role;
create database testdatabase location '/dw/testdatabase.db';
use testdatabase;
create table test_temp (id int, name string);
insert into table test_tmp values(1,'fayson');
(可左右滑动)
2.在命令行使用hdfs命令查看/dv/testdatabase.db及库下表和数据文件的ACL
[root@cdh03 ~]# hadoop fs -getfacl /dw/testdatabase.db
[root@cdh03 ~]# hadoop fs -getfacl /dw/testdatabase.db/test_temp
[root@cdh03 ~]# hadoop fs -getfacl /dw/testdatabase.db/test_temp/000000_0
(可左右滑动)
通过上面的截图可以看到在Hive默认仓库目录外其它目录创建库、表及数据文件的ACL权限均为同步。
3.如下放一个在Hive默认仓库目录的表已同步ACL权限的截图
3.配置目录ACL同步
对于存储在/user/hive/warehouse仓库目录之外的Hive数据,需要在HiveMetastore和Sentry服务中配置其它的目录。目前,Cloudera Manager生成的配置仅在hdfs-site.xml中设置了Hive的默认仓库目录,对于仓库目录之外的需要额外的配置,下面介绍如何进行配置:
1.登录Cloudera Manager进入HDFS服务界面
2.在配置页面搜索“sentry.hdfs.integration.path.prefixes”,在配置项中增加数据目录
保存配置并重启相应服务。
4.ACL权限同步验证
1.在命令行使用hdfs命令查看/dv/testdatabase.db及库下表和数据文件的ACL
[root@cdh03 ~]# hadoop fs -getfacl /dw/testdatabase.db
[root@cdh03 ~]# hadoop fs -getfacl /dw/testdatabase.db/test_temp
[root@cdh03 ~]# hadoop fs -getfacl /dw/testdatabase.db/test_temp/000000_0
(可左右滑动)
通过配置了/user/hive/warehouse以外的目录后,HDFS上查看可以看到ACL权限已同步。
5.总结
1.集群启用Sentry后,实现Hive默认仓库目录(/user/hive/warehouse)以外路径的ACL权限同步,则需要在HiveMetastore和Sentry服务中配置其它路径。
2.可以在HDFS服务的sentry.hdfs.integration.path.prefiexs参数中进行配置,增加需要Sentry同步的目录即可。Cloudera Manager会将配置项生成到HiveMetastore和Sentry服务对应的配置文件hive-site.xml和sentry-site.xml中。
提示:代码块部分可以左右滑动查看噢
为天地立心,为生民立命,为往圣继绝学,为万世开太平。
温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。
推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。
原创文章,欢迎转载,转载请注明:转载自微信公众号Hadoop实操