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
ParameterValueDescription
mapred.system.dir/var/mapr/cluster/mapred/jobTracker/systemThe shared directory where MapReduce stores control files.
mapred.job.tracker.persist.jobstatus.dir/var/mapr/cluster/mapred/jobTracker/jobsInfoThe 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/stagingThe 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多用户配置 0.Hadoop多用户配置的背景。 Hadoop多用户配置的目的就是多个hadoop用户可以共同使用HDFS,但是只能操作属于自己的空间,不能跨用户空间操作(当然/tmp是属于大家的,任何用户都会对这个文件夹有写操作)。 Hadoop多用户配置,相当于给每个用户一个hadoop客户端,每个用户都可以使用hadoop的命令操作属于自己的HDFS空间。 阅读详情

相关推荐

hadoop远程客户端安装配置、多用户权限配置

hadoop远程客户端安装配置 客户端系统:ubuntu12.04 客户端用户名:mjiang 服务器用户名:hadoop 下载hadoop安装包,保证和服务器版本一致(或直接copy服务器的hadoop安装包)  到 http://mirror.bjtu.edu.cn/apache/hadoop/common/ 下载tar.gz安装包,解压。 tar zxvf had

放飞我心 2万+

SPARK org.apache.hadoop.security.AccessControlException: Permission denied: user=TIAN, access=ALL

错误提示:org.apache.hadoop.security.AccessControlException: Permission denied: user=TIAN, access=ALL, inode="/data/output":grip:supergroup:drwxr-xr-x 解决办法:hadoop fs -chmod -R 777 /data 因为idea在windows下...

80后大叔爱学习 1859

Hadoop集群上搭建多用户模式hive

Hadoop集群上搭建多用户模式hive 一.环境介绍 我们将在上文搭建的hadoop集群中安装和配置hive的多用户模式。我们选择 master(10.255.24.191)进行hive的安装和配置 二.环境搭建 1.安装和配置mysql a.yum安装mysql [root@masterroot]# yum install mysql-server b.启动m

雪豹王的专栏 2139

解决root用户对HDFS文件系统操作权限不够问题

HDFS文件系统的目录基本都属于supergroup用户组,所以就把用户添加到该用户组,即可解决很多权限问题。 1、在Linux执行如下命令增加supergroup groupadd supergroup 2、如将用户root增加到supergroup中 usermod -a -G supergroup root 3、同步系统的权限信息到HDFS文件系统 sudo -u hdfs hdfs d...

刘李404not_found的博客 6469

Hadoop 权限管理

如下图,hadoop访问控制分为两级,其中ServiceLevel Authorization为系统级,用于控制是否可以访问指定的服务,例如用户/组是否可以向集群提交Job,它是最基础的访问控制,优先于文件权限和mapred队列权限验证。Access Control on Job Queues在job调度策略层之上,控制mapred队列的权限。DFSPermmision用户控制文件权限。目前版本中

苏的博客 1万+

从零开始:QNX SDP 8.0开发环境搭建与实战入门

本文详细介绍了如何从零开始搭建QNX SDP 8.0开发环境并进行实战入门。内容涵盖许可证获取、环境安装、命令行与IDE工具使用、BSP构建、系统镜像生成,以及编写、编译和运行第一个QNX程序的全过程。旨在帮助嵌入式开发者,特别是汽车电子和工业控制领域的工程师,快速掌握这一实时操作系统(RTOS)的开发基础。

weixin_29163857的博客 641

HDFS客户端的权限错误:Permission denied(转载)

HDFS客户端的权限错误:Permission denied 2013年07月18日Java评论 2 条阅读 5,751 views 次 搭建了一个Hadoop的环境,Hadoop集群环境部署在几个Linux服务器上,现在想使用windows上的Java客户端来操作集群中的HDFS文件,但是在客户端运行时出现了如下的认证错误,被折磨了几天,问题终得以解决。以此文记录问题的解决过程。 (

4886

LVGL按键触发回调函数的完整流程

如果是我的话我会怎么写:例如按键,我先定义一个结构体里面包含ID,事件名等和回调函数的链表节点结构体里面有具体函数的指针,也有指向下一个回调函数的链表节点的指针,初始化一个结构体变量的,通过BSP层来驱动触摸屏幕,再通过中间层与被按下时就会判断是长按还是短按还是其他,改变变量的事件例如:改成长按,生成事件包后再注册你长按的回调函数链表节点,再根据变量的事件到链表中遍历最后实现功能.父容器监听所有子列表项的点击事件,无需为每个列表项单独注册回调。的回调,打印所有事件日志,观察事件触发顺序。

solomonzw的博客 3239

hadoop介绍 - 关于hadoop的文件权限

1、HDFS本身没有提供用户名、用户组的创建,在客户端调用hadoop 的文件操作命令时,hadoop 识别出执行命令所在进程的用户名和用户组,然后使用这个用户名和组来检查文件权限。  2、hadoop的文件权限同linux的用户权限管理机制相同,读写执行,分为 自己 、同一组、alluser 权限层,且有chmod  和  chown相应的操作 。  3、关于web界面中对于权限,w

Mrknowledge 1644

深度学习、图像分类入门,从VGG16卷积神经网络开始

刚开始接触深度学习、卷积神经网络的时候非常懵逼,不知道从何入手,我觉得应该有一个进阶的过程,也就是说,理应有一些基本概念作为奠基石,让你有底气去完全理解一个庞大的卷积神经网络: 本文思路: 一、我认为学习卷积神经网络必须知道的几个概念: 1、卷积过程:   我们经常说卷积神经网络卷积神经网络,到底什么才是卷积?网络层卷积过程到底怎么实现?我们在这里借鉴了另一位博客大牛的动态图来给大

Errors_In_Life的博客 16万+

人工智能AI在软件测试和质量效能中的实际应用

人工智能在软件测试中应用,介绍chatGPT在测试中的应用,还有多个AI驱动的测试工具。

lindafang72的博客 1万+

关于Hadoop多用户管理支持客户端远程操作的理论总结

1、问题 Hadoop客户端如何配置可远程操作Hadoop;Hadoop多用户情况下,是如何管理权限并分配存储空间和计算能力,保证集群的稳定。 2、Hadoop平台 要理解客户端如何通过指定用户远程操作hadoop集群,这里先理解下hadoop平台的部署架构。Hadoop是大数据分布式处理的软件框架,集成MapReduce分布式编程模型和HDFS分布式文件存储系统。MapReduce将执作业

医疗影像检索 6176

[Python] 为什么你的脚本明明没报错,却什么也没发生?

Python脚本运行后没报错却没结果?这是许多开发者遇到的棘手问题。文章分析了六种常见原因:代码未进入目标逻辑分支、输出路径错误、中间数据为空、异常被吞掉、异步操作未完成、运行了错误脚本版本。建议通过"过程可视化"排查,如打印关键变量、检查工作目录、验证数据状态等。职场中更应关注结果验证而非单纯代码执行,确保脚本真正解决问题。建立结果验证意识是从"会写代码"到"稳定交付"的关键转变。

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 302

Hadoop集群共享给多用户

转载自http://www.aboutyun.com/thread-12604-1-1.html 问题导读 1.集群共享给多用户有什么好处? 2.如何将hadoop集群共享给多用户? 3.客户端向集群提交任务时,需要做哪些工作? 假设我们以名为hadoop的用户,建好了集群,见在CentOS上安装Hadoop 2.x 集群。通常,我们会把这

zhizule的博客 1567

YOLOv8深度集成SDFM:显著增强特征细节与多尺度融合,实现小目标检测革命性提升

本文介绍了如何将SDFM(Superficial Detail Fusion Module)模块集成到YOLOv8目标检测模型中,以提升特征融合效能。SDFM通过精细的特征预校准、通道注意力机制和动态加权融合策略,有效解决了多尺度特征融合中的细节保留问题。实验表明,集成SDFM后YOLOv8的mAP50-95提升12.7%,召回率提升9.0%,精确率提升5.9%,显著增强了模型性能。教程详细阐述了SDFM的工作原理、代码实现步骤及优化思路,为研究者和开发者提供了实用的技术指南。

FJN110的博客 117

《Linux GPU 驱动核心机制:面向图形与 AI 计算的 DRM 内存管理与任务调度》 目录

本文以缓冲区对象(BO)生命周期为主线,系统解析 Linux DRM 子系统中 GPU 驱动的核心机制。涵盖 GEM 与 TTM 内存管理、dma-buf/dma-fence 共享同步、GPU 调度与地址空间管理,结合 amdgpu、Xe 等驱动代码,深入剖析其设计动机与实现逻辑。旨在填补中文领域对 GPU 内核机制系统性讲解的空白,为图形与 AI 计算场景下的内存泄漏、同步死锁等疑难问题提供可追溯的分析路径。

图形/计算GPU的驱动与虚拟化技术分享园地 3721

大数据之Hadoop平台(五)Hadoop多用户管理

前言 最近有一些需求,就是需要在hadoop集群中实现多用户管理,因此在网上搜了很多的资料。其中有一种方法感觉还是比较可行,链接:http://cn.soulmachine.me/blog/20140206/大概方式是:先新建一个用户test1,然后把hadoop的安装目录复制一份copy到这个用户test1的目录下,再赋一下权限,然后这个用户就可以向集群提交程序了。后来经过一些列的尝试,发现确

PicassoLoveCoding的专栏 3751

VCAST创建单元测试工程

选择工作目录,后面创建胡UT工程将会生成到这个目录。

qq_42851449的博客 2482

Hadoop Yarn 多用户资源隔离

在一个公司内部的Hadoop Yarn集群,肯定会被多个业务、多个用户同时使用,共享Yarn的资源,如果不做资源的管理与规划,那么整个Yarn的资源很容易被某一个用户提交的Application占满,其它任务只能等待,这种当然很不合理,我们希望每个业务都有属于自己的特定资源来运行MapReduce任务,Hadoop中提供的公平调度器–Fair Scheduler,就可以满足这种需求。 Fair S...

大数据流浪法师的学习笔记与分享 1382

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

cdh用户权限_数据平台(hadoop)多用户权限管理

概述CDH测试集群已经搭建好了,勉强算是有个数据平台可以实践了,这几天一直在忙多用户权限管理的问题,借鉴网上博客,但抄袭无数,基本百度第一页都是一模一样的内容(渣渣)。信息混乱,过时,很多博客根本没作用或者讲的不清不楚,踩坑无数,心里下定决心,一定要写篇博客专门讲清楚,这次不讲底层本质,讲应用导读认证 (authentication) 和授权 (authorization)表权限表权限优化文件权限...

weixin_39644139的博客 818

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Hive多用户权限

HIVE多用户权限 当多个用户共同使用hive时,需要对不同角色做不同的权限控制。 权限控制主要指底层的hdfs文件操作控制和hive自身对表的授权管理。hive是通过mysql的元数据来控制hive里的权限。 Hive授权的核心是:user,group,role。 User:是基于linux用户的user,哪个linux用户使用hive客户端,那个linux用户就是该hiv...

Joseph25的博客 1624

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Hadoop多用户作业调度器和安全机制的自我总结

在掌握Hadoop平台上,一直有两个疑问困扰着: 1)Hadoop的用户和用户组和Linux操作系统用户和用户组之间的关系; 2)多用户下,Hadoop平台如何管理以保证作业调度和文件安全; 先说下Hadoop队列管理机制:Hadoop以队列为单位管理作业、用户和资源,集群划分成若干个队列, 每个队列分配一定的资源,用户只能向对应的一个或几个队列中提交作业。 Hadoop队列管理

医疗影像检索 3314
上一篇: Mysql group by top N
下一篇: 试读《大型分布式网站架构设计与实践》
sony21
博客等级 码龄23年 0粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值