一 简介
CDH大数据集群安装和使用过程中,涉及到很多用户。根据用户性质分为服务用户和使用用户。服务用户是在搭建CDH集群中自动创建的,使用用户是在集群使用中管理员创建的。这些用户都是基于linux的用户。因此先补充一下linux 用户知识。
二 Linux 用户操作
1. 查看用户信息
- whoami 查看当前登录用户名
- groups 查看当前登录用户的组内成员
- groups test 查看test用户所在的组,以及组内成员
- cat /etc/passwd (文件格式是:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell)
- cat /etc/group (文件格式是: 组名:口令:组标识号:组内用户列表)
2. 用户操作(添加,删除,修改)
2.1 添加 useradd
格式:useradd [-d home] [-s shell] [-c comment] [-m [-k template]] [-f inactive] [-e expire ] [-p passwd] [-r] name
主要参数
-c:加上备注文字,备注文字保存在passwd的备注栏中。
-d:指定用户登入时的主目录,替换系统默认值/home/<用户名>
-D:变更预设值。
-e:指定账号的失效日期,日期格式为MM/DD/YY,例如06/30/12。缺省表示永久有效。
-f:指定在密码过期后多少天即关闭该账号。如果为0账号立即被停用;如果为-1则账号一直可用。默认值为-1.
-g:指定用户所属的群组。值可以使组名也可以是GID。用户组必须已经存在的,期默认值为100,即users。
-G:指定用户所属的附加群组。
-m:自动建立用户的登入目录。
-M:不要自动建立用户的登入目录。
-n:取消建立以用户名称为名的群组。
-r:建立系统账号。
-s:指定用户登入后所使用的shell。默认值为/bin/bash。
-u:指定用户ID号。该值在系统中必须是唯一的。0~499默认是保留给系统用户账号使用的,所以该值必须大于499。
特例:无法使用shell,且其用户目录至/var/servlet/service
useradd tomcat -d /var/servlet/service -s /sbin/nologin
2.2 删除用户
- userdel username
- userdel -f username 连同用户目录一并删除
2.3 用户权限和用户组修改
文件用户和用户组修改:chown
权限修改:chmod
- -a|--append ##把用户追加到某些组中,仅与-G选项一起使用
- -c|--comment ##修改/etc/passwd文件第五段comment
- -d|--home ##修改用户的家目录通常和-m选项一起使用
- -e|--expiredate ##指定用户帐号禁用的日期,格式YY-MM-DD
- -f|--inactive ##用户密码过期多少天后采用就禁用该帐号,0表示密码已过期就禁用帐号,-1表示禁用此功能,默认值是-1
- -g|--gid ##修改用户的gid,改组一定存在
- -G|--groups ##把用户追加到某些组中,仅与-a选项一起使用
- -l|--login ##修改用户的登录名称
- -L|--lock ##锁定用户的密码
- -m|--move-home ##修改用户的家目录通常和-d选项一起使用
- -s|--shell ##修改用户的shell
- -u|--uid ##修改用户的uid,该uid必须唯一
- -U|--unlock ##解锁用户的密码
三, CDH 中用户信息
1. 按照功能汇总
用户名 |
密码 |
说明 |
cloudera-scm |
无 |
cloudera-scm-server服务的用户 |
admin |
自定义 |
cloudera manager管理员用户 |
scm |
自定义 |
cm数据库的用户名和密码 |
无 |
自定义 |
Kerberos 数据库 |
(自定义) |
自定义 |
Kerberos database管理员 |
自定义 |
Cloudera manager管理kerberos的 |
|
无 |
自定义 |
Ldap数据库 |
Flume,hdfs,solr zookeeper,llama,httpfs,mapred,sqoop,yarn,kms,hive,sqoop2,oozie,hbase,sentry,impala,spark,hue,ldap |
无 |
大数据集群中各服务用户 |
hdfs@HADOOP.COM和hive@HADOOP.COM |
自定义 |
大数据集群的超级用户(权限管理使用) |
duan(自定义) |
无 |
大数据集群普通用户,用户ID>=1000 |
duan@HADOOP.COM |
自定义 |
Kerberos创建用户 |
2. 官网文档:https://www.cloudera.com/documentation/enterprise/6/release-notes/topics/rg_network_and_security_requirements.html
四,创建普通用户
1. 系统介绍
-
操作系统:CentOs 7
-
Hadoop版本:CDH5.12.2
-
JDK版本:1.8.0_101
-
OpenLDAP 版本:2.4.44
-
Kerberos 版本:1.15.1-19.el7
- sentry 版本
2. 创建用户
说明:每个帐户的用户ID必须大于或等于1000.在/etc/hadoop/conf/taskcontroller.cfg文件中,banned.users属性的默认设置是mapred,hdfs和bin,以防止作业 从这些用户帐户提交。 min.user.id属性的默认设置是1000,以防止使用小于1000的用户ID提交作业,这些用户ID通常是Unix超级用户。
2.1 堡垒机节点创建test1 用户和用户组
useradd test1 -u 1001
usermod -a -G duan test1(duan是普通用户组)
2.2 ldap增加账户及账户组(待验证)
grep -E "dsp:|dmp:" /etc/passwd >/opt/passwd.txt /usr/share/migrationtools/migrate_passwd.pl /opt/passwd.txt /opt/passwd.ldif ldapadd -x -D "uid=ldapadmin,ou=people,dc=yeahmobi,dc=com" -w secret -f /opt/passwd.ldif grep -E "dsp:|dmp:" /etc/group >/opt/group.txt /usr/share/migrationtools/migrate_group.pl /opt/group.txt /opt/group.ldif ldapadd -x -D "uid=ldapadmin,ou=people,dc=yeahmobi,dc=com" -w secret -f /opt/group.ldif ldappasswd -x -D 'uid=ldapadmin,ou=people,dc=yeahmobi,dc=com' -w secret "uid=dsp,ou=people,dc=yeahmobi,dc=com" -S ldappasswd -x -D 'uid=ldapadmin,ou=people,dc=yeahmobi,dc=com' -w secret "uid=dmp,ou=people,dc=yeahmobi,dc=com" -S ldappasswd -x -D 'uid=ldapadmin,ou=people,dc=yeahmobi,dc=com' -w secret "uid=bi,ou=people,dc=yeahmobi,dc=com" -S
2.3 kerberos 生成用户
kadmin.local kadmin.local: addprinc test1 (密码是####) kadmin.local: xst -k /tmp/keytab/test1.keytab -norandkey test1 说明:-norandkey参数是生成不变的密码。
2.4 hadoop中增加相应用户的目录及权限
hadoop fs -mkdir /user/test1 hadoop fs -chmod -R 755 /user/test1 hadoop fs -chown -R test1:test1/user/test1
2.4 sentry 基于角色赋予权限,所以
sentry安装后需要和hive,impala等组件集成,详见其他材料。本文只介绍用户角色权限。
集成后,需要创建hive管理账号。
kadmin.local kadmin.local: addprinc hive (密码是####) kadmin.local: xst -k /tmp/keytab/hive.keytab -norandkey hive 说明:-norandkey参数是生成不变的密码。
kinit hive
Beeline
>!connect jdbc:hive2://duan139:10000/default;principal=hive/duan139@HADOOP.COM
>create role admin;
>grant all on server server1 to role admin;
>grant role admin to group hive;
创建普通用户(hive用户beeline登陆)
>create role duan ;
>grant all on database default to role duan with grant option;
>grant role duan to group duan;
此处有个逻辑:test1属于duan用户组,上述步骤创建了duan角色,并赋予default数据库全部权限,然后授予到duan 用户组,即duan 用户组中的用户成员就有default数据库全部权限了。