当前位置:   article > 正文

hadoop权限操作

hadoop权限

新增用户:

useradd zyl1

 

一、将新建用户zyl1赋予hdfs用户权限

执行查询hdfs没有权限:Permission denied

 

groups hbase (查看用户所属组)

 

[root@cdh129130 ~]# hadoop fs -ls /hbase

ls: Permission denied: user=zyl1, access=READ_EXECUTE, inode="/hbase":hbase:hbase:drwx------

[root@cdh129130 ~]#

 

授权过程:

 查看cm发现hdfs的超级用户组是supergroup,就要在服务器上新建用户组supergroup,并将用户zyl1加入该组

 

新增supergroup组

[root@cdh129130 ~]# groupadd supergroup

 

将zyl1用户加入组supergroup

[root@cdh129130 ~]# gpasswd -a zyl1 supergroup

 

再次查看目录,优先权了

[root@cdh129130 ~]# hadoop fs -ls /hbase

Found 9 items

drwxr-xr-x   - hbase hbase          0 2017-05-20 10:47 /hbase/.tmp

drwxr-xr-x   - hbase hbase          0 2017-05-20 10:47 /hbase/WALs

drwxr-xr-x   - hbase hbase          0 2017-05-19 11:36 /hbase/archive

drwxr-xr-x   - hbase hbase          0 2017-04-18 14:57 /hbase/corrupt

drwxr-xr-x   - hbase hbase          0 2017-04-13 19:34 /hbase/data

drwxr-xr-x   - hbase hbase          0 2017-05-19 09:59 /hbase/dop

-rw-r--r--   3 hbase hbase         42 2017-04-13 19:34 /hbase/hbase.id

-rw-r--r--   3 hbase hbase          7 2017-04-13 19:34 /hbase/hbase.version

drwxr-xr-x   - hbase hbase          0 2017-05-20 10:48 /hbase/oldWALs

 

 

二、将Kerberos认证的hbase赋予zyl1

 

1、查看所有用户主体:

echo root | kadmin -p root/admin -q "list_principals"

 

2、创建主体test1@MYCDH

echo root | kadmin -p root/admin  -q "addprinc -randkey zyl1@MYCDH"

 

3、生成keytab文件

echo root | kadmin -p root/admin  -q "xst  zyl1"

 

4、生成keytab文件默认:/etc/krb5.keytab(该文件会被下一次生成的覆盖)

保存到指定位置

cp /etc/krb5.keytab /root/zyl1.keytab

 

5、切换用户:

kinit -kt /etc/zyl1.keytab zyl1@MYCDH

 

kinit -kt /var/run/cloudera-scm-agent/process/478-hbase-MASTER/hbase.keytab hbase/cdh129130@MYCDH

 

6、查看目前机器的用户:

klist

 

三、yarn权限

 

1、执行mr验证用户是否有权限

hadoop jar  WordCountMR_fat.jar /tmp/wordcount.txt /tmp/zyl1

 

 

解决方法:

为每一个User Account创建Kerberos Principal当集群运行Kerberos后,每一个Hadoop user都必须有一个principal或者keytab来获取Kerberos credentials,这样才能访问集群并使用Hadoop的服务。

也就是说,如果Hadoop集群存在一个名为zyl1@MYCDH的principal,那么在集群的每一个节点上应该存在一个名为zyl1 的Linux用户。同时,在HDFS中的目录/user要存在相应的用户目录(即/user/zyl1 ),且该目录的owner和group都要是zyl1。

(Linux user 的 user id 要大于等于1000,否则会无法提交Job。例如,如果以hdfs(id为496)的身份提交一个job,就会看到以下的错误信息: Requested user hdfs is not whitelisted and has id 496,which is below the minimum allowed 1000 )

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/673525
推荐阅读
相关标签
  

闽ICP备14008679号