文档编写目的
本文测试OpenLDAP中特殊用户名(test.user_357)能否正常使用,和使用principal名为test.user_357的Kerberos账号能否正确提交到对应的资源池队列。
1.Redhat7.2
2.采用root用户操作
3.CM/CDH6.2.0
OpenLDAP中添加用户
1.编辑user.ldif和group.ldif
[root@a-dsj-yycn01 ~]# vim user.ldif
dn: uid=test.user_357,ou=People,dc=hadoop,dc=com
uid: test.user_357
cn: test.user_357
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword: 123456
shadowLastChange: 18103
shadowMin: 0
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 1908
gidNumber: 1908
homeDirectory: /home/test.user_357
[root@a-dsj-yycn01 ~]# vim group.ldif
dn: cn=test.user_357,ou=Group,dc=hadoop,dc=com
objectClass: posixGroup
objectClass: top
cn: test.user_357
userPassword: {crypt}x
gidNumber: 1908
2.把用户和组添加进OpenLDAP,在其他节点验证添加成功
[root@a-dsj-yycn01 ~]# ldapadd -D "cn=Manager,dc=hadoop,dc=com" -w 123456 -x -f user.ldif
[root@a-dsj-yycn01 ~]# ldapadd -D "cn=Manager,dc=hadoop,dc=com" -w 123456 -x -f group.ldif
在Hue中登陆并测试
3.1 登陆刚创建的OpenLDAP用户
Hue已经设置为LDAP验证,这里直接用刚创建的用户名和密码登陆Hue,登陆成功
3.2 Hue使用测试
3.2.1 Hive使用测试
1.用select * from 进行查询可以正常使用
2.插入数据也成功
3.2.2 Impala使用测试
1.用select * from 进行查询可以正常使用
2.插入数据也成功
3.2.3 HDFS使用测试
可以查看有权限的一些目录
3.2.4 Sentry授权测试
1.先在Hue中用Sentry给组test.user_357授权
2.用test.user_357进行select测试,如下图,可以进行查询操作
3.用test.user_357进行insert测试,如下图,不能进行插入操作,提示没有权限
测试特殊用户名能否正确提交MR任务
4.1 创建名为test.user_357的principal
[root@a-dsj-yycn01 ~]# kadmin.local
Authenticating as principal hdfs/admin@BIGDATA.HADOOP.COM.CN with password.
kadmin.local: addprinc test.user_357
4.2 提交任务测试
1.登陆创建的principal
[root@a-dsj-yycn01 ~]# kinit test.user_357
Password for test.user_357@BIGDATA.HADOOP.COM.CN:
[root@a-dsj-yycn01 ~]# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: test.user_357@BIGDATA.HADOOP.COM.CN
2.提交任务进行测试,任务运行成功
[root@a-dsj-yycn01 ~]# hadoop jar /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar pi 10 1
3. 去Yarn中看任务情况,资源池队列的放置规则为提交到root.username(如果不存在则创建)。从application中可以看到用户test.user_357提交的任务正确的提交到了资源池root.users.test_dot_user_357这个资源池中。对比发现资源池的名称把’.’替换成了’_dot_’。
总结
1.使用名称为(xxx.xxx_xxx)这种类型的OpenLDAP用户登陆Hue时候,与普通命名的用户一样,可以正常进行Hive,Impala,HDFS的操作,使用Sentry赋权也正常。该命名模式对于使用没有影响。
2.使用名称为(xxx.xxx_xxx)这种类型的principal进行验证提交任务的时候,资源池队列的名称会把‘.’变为‘dot’(即xxx_dot_xxx_xxx)。该命名模式对于使用没有影响。
Fayson的github: https://github.com/fayson/cdhproject