当前cdh版本为5.2.0,且通过cloudera manger来管理集群。
选择sentry配置方式,file or db。
file形式(sentry-provider.ini),存于hdfs上。
选择group mapping方式,有HadoopGroupResourceAuthorizationProvider(正式环境中)、LocalGroupResourceAuthorizationProvider(测试环境中)。
经过测试,Hadoop groups需要使用将hadoop用户和用户组通过LDAP管理[url]configure ldap group mapping[/url],但配置后hdfs启动异常,并且若不配置ldap mapping,sentry provider file没有效果,所有表和库都看不到。
采用简单的 LocalGroupResourceAuthorizationProvider测试成功。
相关步骤参看cm配置方法
db形式,cloudera manager提供了sentry service即sentry store。
安装sentry service并配置相关的数据库(后续的权限信息都存于这些表),配置sentry如上的cm配置方法不需要配置。
如上创建了两个角色,admin_role管理员权限,并授权给hive,bi_role对db data_system的所有权限,授权给bi用户组。
beeline shell帮助文档
参考blog:
http://www.cloudera.com/content/cloudera/en/documentation/core/v5-2-x/topics/cm_sg_ldap_grp_mappings.html#xd_583c10bfdbd326ba--6eed2fb8-14349d04bee--7bc3
http://www.cloudera.com/content/cloudera/en/documentation/core/v5-2-x/topics/sg_policy_cm_config.html
http://blog.javachen.com/2014/11/14/config-impala-and-hive-with-sentry/
选择sentry配置方式,file or db。
file形式(sentry-provider.ini),存于hdfs上。
选择group mapping方式,有HadoopGroupResourceAuthorizationProvider(正式环境中)、LocalGroupResourceAuthorizationProvider(测试环境中)。
经过测试,Hadoop groups需要使用将hadoop用户和用户组通过LDAP管理[url]configure ldap group mapping[/url],但配置后hdfs启动异常,并且若不配置ldap mapping,sentry provider file没有效果,所有表和库都看不到。
采用简单的 LocalGroupResourceAuthorizationProvider测试成功。
相关步骤参看cm配置方法
db形式,cloudera manager提供了sentry service即sentry store。
安装sentry service并配置相关的数据库(后续的权限信息都存于这些表),配置sentry如上的cm配置方法不需要配置。
sudo su hive
beeline
!connect jdbc:hive2://172.20.0.74:10000/data_system;principal=hive/slave-74@YEAHMOBI.COM
(hive kerberos 账户和密码)(据说hive0.13版本集成ldap失败,新的cdh5.3可行,所以采用kerberos认证)
create role admin_role;
GRANT ALL ON SERVER server1 TO ROLE admin_role;
GRANT ROLE admin_role TO GROUP hive;
create role bi_role;
GRANT ALL ON DATABASE data_system TO ROLE bi_role;
GRANT ROLE bi_role TO GROUP bi;
如上创建了两个角色,admin_role管理员权限,并授权给hive,bi_role对db data_system的所有权限,授权给bi用户组。
sudo su bi
beeline -u "jdbc:hive2://172.20.0.74:10000/data_system;principal=hive/slave-74@YEAHMOBI.COM"
(bi kerberos用户及密码 或者优先kinit bi/keytab)
show databases;
| database_name |
+----------------+--+
| data_system |
| default |
beeline shell帮助文档
新建用户
在所有节点中运行
useradd bi -u 1001 (id大于1000)
usermod -a -G bi bi
相关kerberos命令
addprinc -randkey krbtgt/client-75@YEAHMOBI.COM
addprinc -randkey host/client-75@YEAHMOBI.COM
addprinc -randkey HTTP/client-75@YEAHMOBI.COM
addprinc -randkey bi/client-75@YEAHMOBI.COM
addprinc -randkey bi/slave-74@YEAHMOBI.COM
addprinc bi@YEAHMOBI.COM
xst -norandkey -k bi.keytab host/client-75@YEAHMOBI.COM
xst -norandkey -k bi.keytab HTTP/client-75@YEAHMOBI.COM
xst -norandkey -k bi.keytab bi/client-75@YEAHMOBI.COM
创建hdfs目录和授权
sudo su hdfs
hadoop fs -mkdir /user/bi
hadoop fs -chmod -R 755 /user/bi
hadoop fs -chown -R bi:bi /user/bi
mr测试
sudo su bi
kinit -kt bi.keytab bi/client-75@YEAHMOBI.COM
hadoop jar /opt/cloudera/parcels/CDH-5.2.0-1.cdh5.2.0.p0.36/jars/hadoop-examples.jar pi 10 1000
beeline ldap测试:
!connect jdbc:hive2://172.20.0.74:10000/data_system
输入ldap的bi账户和密码
show databases成功
参考blog:
http://www.cloudera.com/content/cloudera/en/documentation/core/v5-2-x/topics/cm_sg_ldap_grp_mappings.html#xd_583c10bfdbd326ba--6eed2fb8-14349d04bee--7bc3
http://www.cloudera.com/content/cloudera/en/documentation/core/v5-2-x/topics/sg_policy_cm_config.html
http://blog.javachen.com/2014/11/14/config-impala-and-hive-with-sentry/