现在的位置: 首页 > 云计算 > 正文

hadoop的权限管理

2014年01月20日 云计算 ⁄ 共 1538字 ⁄ 字号 评论关闭

hadoop1.0.0以前版本:

只有权限管理没有安全机制


◆权限管理

1.参数配置

dfs.permissions = true 开启HDFS权限管理,false时对HDFS的读写不检查用户的权限。

chmod,chgrp 和 chown 不受该参数控制,总是会检查权限。

2.权限管理

HDFS每个文件和目录有一个所有者(owner)和一个组(group)。

文件或目录对其所有者、同组的其他用户以及所有其他用户分别有着不同的权限。

  ▪对文件而言,当读取这个文件时需要有r权限,当写入或者追加到文件时需要有w权限。

  对目录而言,当列出目录内容时需要具有r权限,当新建或删除子文件或子目录时需要有w权限,当访问目录的子节点时需要有x权限。

HDFS没有可执行文件的概念。

从client端访问HDFS时,使用的用户优先考虑core-site.xml中配置的用户(配置项:Hadoop.job.ugi),如果未配置则使用当前系统登录用户。

当client端的用户没有访问权限时,抛出AccessControlException异常。


◆安全机制

Simple机制
 Simple机制(默认情况,Hadoop采用该机制)是JAAS协议与delegation token整合机制
 JAAS是Java 认证和授权服务(Java Authentication and Authorization Service)的缩写,是PAM框架的Java实现。
Kerberos 机制
 Kerberos 提供了这样一种机制,可以认证的密钥放到服务器上,用户在进行操作时,要先到认证服务器上做校验,只有通过,才可以进行相应的操作。

HDFS安全机制 
 Client去NameNode获取访问DataNode的凭证
 获得凭证后,才可以访问相应的数据库
 DataNode在启动时会在NameNode拿来相应的凭证
 客户端访问时,DataNode 会校验相应的凭证

MapReduce安全机制 
 作业提交
 所有关于作业的提交或者作业运行状态的追踪均是采用带有Kerberos认证的RPC实现的
 授权用户提交作业时,JobTracker会为之生 成一个令牌,该令牌将被作为job的一部分存储到HDFS上并通过RPC分发给各个TaskTracker,一旦job运行结束,该token失 效。
 任务运行
 用户提交作业的每个task均是以用户身份启动的,这样,一个用户的task便不可以向TaskTracker或者其他用户的task发送操作系统信号,最其他用户造成干扰。这要求为每个用户在所有TaskTracker上建一个账号。
 

Hadoop权限管理
 用户分组管理
 用户按组为单位组织管理
 可以限制用户使用的资源等内容
 Hadoop 使用Linux的用户与用户组
 作业管理
 作业提交权限控制
 作业运行状态查看权限控制。
 可限定可提交作业的用户
 可限定可查看作业运行状态的用户
 可限定普通用户只能修改自己作业的优先级,kill自己的作业
 高级用户可以控制所有作业(主要是通过系统的用户组权限来进行控制)。 
 

MapReduce权限管理
 MapReduce支持权限管理需使用Fair Scheduler或者 Capacity Scheduler
 为MapReduce添加权限管理一共分以下3步
   配置Fair Scheduler或者 Capacity Scheduler
   配置用户管理
   配置作业的ACL

参考文章:

Kerberos简介http://idior.cnblogs.com/archive/2006/03/20/354027.html



抱歉!评论已关闭.