选择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/[email protected] (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/[email protected]" (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/[email protected] addprinc -randkey host/[email protected] addprinc -randkey HTTP/[email protected] addprinc -randkey bi/[email protected] addprinc -randkey bi/[email protected] addprinc [email protected] xst -norandkey -k bi.keytab host/[email protected] xst -norandkey -k bi.keytab HTTP/[email protected] xst -norandkey -k bi.keytab bi/[email protected] 创建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/[email protected] 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/