`
DreamOne
  • 浏览: 8349 次
文章分类
社区版块
存档分类
最新评论

hadoop 多用户权限(转)

阅读更多

http://blog.sina.com.cn/s/blog_605f5b4f0101897z.html

 

之前都是用root运行的,但是现在必须要解决这个问题。

 
hdfs的权限判断十分简单,就是拿发出指令的user name和文件的user name 做比较
  private void check(INode inode, FsAction access
      ) throws AccessControlException {
    if (inode == null) {
      return;
    }
    FsPermission mode = inode.getFsPermission();
 
    if (user.equals(inode.getUserName())) { //user class
      if (mode.getUserAction().implies(access)) { return; }
    }
    else if (groups.contains(inode.getGroupName())) { //group class
      if (mode.getGroupAction().implies(access)) { return; }
    }
    else { //other class
      if (mode.getOtherAction().implies(access)) { return; }
    }
    throw new AccessControlException("Permission denied: user=" + user
        + ", access=" + access + ", inode=" + inode);
  }
}
 
在多用户提交任务时遇到Permission denied, 的原因和任务提交的过程有关。
1. 首先提交任务的客户端会把任务相关文件打包放在hadoop.tmp.dir中,这是本地目录,需要通过本地系统权限验证。由于是临时目录直接设置成为777就行.
2.  客户端会将任务文件打包写入hdfs的mapreduce.jobtracker.staging.root.dir + "/" + user + "/.staging" 目录,需要经过hdfs权限验证。通常可以选择两种方法解决。
1) 保持mapreduce.jobtracker.staging.root.dir为默认,将此目录chmod 777
2) 在hdfs的/user目录下建立用户目录,并且chown为该用户,相当于在hdfs下创建一个用户。
然后设置mapreduce.jobtracker.staging.root.dir为/user,  这是官方推荐的,可以看到这个属性的描述是这样写的:
The root of the staging area for users' job files In practice, this should be the directory where users' home directories are located (usually /user)。
3)有人说可以在启动任务时加入hadoop.job.ugi属性指定用户和群组。 我验证这样不行。看源码里也是直接获取
ugi = UserGroupInformation.getCurrentUser();不过看hdfs权限策略这操行应该可以设置。
 
还有一些如设置dfs.permissions参数关闭权限校验,改源码直接不校验之类的。。。
 
最后要注意,任务的out put需要当前用户拥有权限,不然还是不成功。设置成为用户目录就好了
 
另外,关于/tmp目录也要注意:
 ERROR org.apache.pig.impl.io.FileLocalizer - org.apache.hadoop.security.AccessControlException: org.apache.hadoop.security.AccessControlException: Permission denied: user=shashaa, access=WRITE, inode="tmp":pwang7:supergroup:rwxr-xr-x
 碰到这种情况,当然是使用chmod把tmp目录的权限改为777了。
 
关于mapreduce.jobtracker.staging.root.dir
Parameter Value Description
mapred.system.dir /var/mapr/cluster/mapred/jobTracker/system The shared directory where MapReduce stores control files.
mapred.job.tracker.persist.jobstatus.dir /var/mapr/cluster/mapred/jobTracker/jobsInfo The directory where the job status information is persisted in a file system to be available after it drops of the memory queue and between jobtracker restarts.
mapreduce.jobtracker.staging.root.dir /var/mapr/cluster/mapred/jobTracker/staging The root of the staging area for users' job files In practice, this should be the directory where users' home directories are located (usually /user)
启动hadoop hdfs系统的用户即为超级用户,可以进行任意的操作。
 
如想让leaf用户也可执行hadoop的作业,执行如下操作:
 
用超级用户hadoop,创建文件    hadoop fs -mkdir /user/leaf
 
使用hadoop fs -chown 以及-chgrp 命令改变该文件的用户和用户组权限为leaf
 
在配置文件hdfs-site-xml 中添加项  dfs.permissions.enabled的值为 true (hadoop0.21版本)
 
要保证leaf这个用户几个节点能ssh无密码相互登录,java环境变量没问题(我们配置时就忽略了这点,幸亏大飞哥的帮助才搞定)
 
这样leaf用户就可以提交任务数据到HDFS的/user/leaf目录中,并且可执行hadoop任务,注意如果不修改staging,任务仍旧无法提交,虽然这时候可以对hdfs的/user/leaf目录进行操作
分享到:
评论

相关推荐

    Hadoop实战中文版

    8.11 多用户作业的调度 8.11.1 多个JobTracker 8.11.2 公平调度器 8.12 小结第三部分 Hadoop也疯狂 第9章 在云上运行Hadoop 9.1 Amazon Web Services 简介 9.2 安装AWS 9.2.1 获得AWS身份认证凭据 9.2.2 ...

    Hadoop实战中文版.PDF

    1568.11 多用户作业的调度 1578.11.1 多个JobTracker 1588.11.2 公平调度器 1588.12 小结 160第三部分 Hadoop也疯狂第9章 在云上运行Hadoop 1629.1 Amazon Web Services简介 1629.2 安装AWS 1639.2.1...

    基于SpringCloud+Hadoop+Vue的企业级网盘系统设计与实现源码

    基于SpringCloud+Hadoop+Vue企业网盘系统主要分为前台和后台两大模块,前台模块分为首页,网盘,分享,资源库,关注用户,系统公告模块,不同的功能模块拥有的功能也是不相同的。此外,所需权限也不同。后台模块分为...

    Hadoop实战

    1518.5 启用回收站 1528.6 删减DataNode 1528.7 增加DataNode 1538.8 管理NameNode和SNN 1538.9 恢复失效的NameNode 1558.10 感知网络布局和机架的设计 1568.11 多用户作业的调度 1578.11.1 多个JobTracker 1588.11....

    Hadoop实战(陆嘉恒)译

    管理Hadoop8.1 为实际应用设置特定参数值8.2 系统体检8.3 权限设置8.4 配额管理8.5 启用回收站8.6 删减DataNode8.7 增加DataNode8.8 管理NameNode 和SNN8.9 恢复失效的NameNode8.10 感知网络布局和机架的设计8.11 多...

    详解VMware12使用三台虚拟机Ubuntu16.04系统搭建hadoop-2.7.1+hbase-1.2.4(完全分布式)

    网上教程虽然多,但是有些教程比较老,许多教程忽略许多安装过程中的细节,比如添加用户的权限,文件权限,小编在安装过程遇到许多这样的问题所以想写一篇完整的教程,希望对初学Hadoop的人有一个直观的了解,我们...

    基于SpringBoot+Hadoop+Vue开发的企业级网盘分布式系统源码+项目说明(本科毕设).zip

    公告发布的时间范围进行搜索,在更多模块下用户可以动态切换系统主题,然后让用户无感知的记录用户行为,当用户退出登录后重新登录,系统的主题还是用户退出登录时所选择的主题。 管理员和超级管理员成功登入系统...

    大数据课程体系.pdf

    Linux 启动流程,运行级别详解,chkconfig 详解 nano 编辑器 Linux 权限管理:用户、组 Linux 权限管理:文件权限 rwx Linux 网络管理:hosts,hostname,ifconfig 安装 JDK Hadoop Hadoop 介绍,发展史,国内外现状...

    linux用户创建

    4、如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其他用户组的权限。用户可以在登录后,使用命令newgrp切换到其他用户组,这个命令的参数就是目的用户组。 例如: 代码: $ newgrp root ...

    Ranger学习——基础概念

    主流的大数据安全组件Kerberos由于使用临时的用户验证机制不适用用户多的情况、Sentry只适用少部分的Hadoop生态组件应用场景少。ApacheRanger作为标准化的访问控制层,引入统一的权限模型与管理界面,极大地简化了...

    大数据资源体系解决方案.docx

    访问控制与权限管理:建立严格的访问控制机制,对不同用户设置不同的数据访问权限,确保数据的安全性和合规性。 安全审计与监控:通过安全审计和监控技术,对数据的访问、使用等操作进行实时监控和记录,及时发现和...

    测试工具—Distcp工具深入分析

    DistCp命令是hadoop用户最常使用的命令之一,它位于hadooptools包中,代码不多,约1300多行,主要用于在两个HDFS集群之间快速拷贝数据。DistCp工具代码结构清晰易懂,通过分析该工具的代码有助于我们更好的理解MR...

    大数据技术白皮书.pdf

    京东拥有全渠道零售和端到端的高质量大数据, 包含了用户 的浏览和消费行为、商品制造和销售、物流仓储配送以及客服与 京东大数据技术白皮书 ~ 6 ~ 售后等丰富完整的信息。同时,京东业务中包含有大量丰富的大 数据...

    2021数据仓库服务常见问题汇总-华为-51页.pdf

    1 通用问题 1.1 什么是数据仓库? 1.2 数据仓库内核gaussdb 是自研吗?...6.3 如何REVOKE 某用户的connect on database 权限? 7 数据库使用 7.1 GaussDB(DWS)数据库设置主键后还需要设置分布键吗? …………

    大数据与健康生活.docx

    例如通过分析过用户的点外卖量数据后,通过决策树和逻辑回归的方法可以将人群分为偏好外卖者与自己做饭类,然后发布不同的推送,对于点外卖多的人可以推送附件味道好,环境干净的店家;对于点外卖少的人就可以推送...

    linux系统用户管理与grep正则表达式示例教程

    本文主要给大家介绍了关于linux系统用户管理与grep正则表达式的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 linux系统用户管理与grep正则表达式 1、复制/etc/skel目录为/home/...

    moosefs:MooseFS –开源,PB,容错,高性能,可扩展的网络分布式文件系统(软件定义的存储)

    MooseFS将数据分布在许多商用服务器上,这些服务器对于用户而言是一种资源。 对于标准文件操作,MooseFS的行为类似于普通的类似Unix的文件系统: 层次结构–目录树 存储POSIX文件属性-权限,上次访问和修改时间等...

Global site tag (gtag.js) - Google Analytics