您的位置:首页 > 运维架构 > Linux

Linux7 下Hadoop集群用户管理方案之一 用户管理集群方案概述

2017-05-07 21:08 218 查看
分为几个步骤
方案调研
CM的部署
Kerberos的安装与集成
方案的实践 实现添加用户功能

第一部分:方案的调研与确认
需要做一个大数据教育平台,面向学校,培训机构等,可以基于同一个大数据基础环境,学生可以进行大数据实践,而不需要复杂的搭建过程。

HDFS章节:
想做到这一点,不可避免的就是数据隔离的问题,文件不能被互删,只能读取自己的文件,这是我们首要面临的问题。为了解决这个问题调研了很多种方式。最终选用的方式是:
基于Kerberos的认证,基于HDFS的权限管理的方案。
我们知道HDFS的权限是基于POXIS接口模型,类似于linux的权限管理。可以实现基本的数据权限管理。但是HDFS有一个问题就是,默认是没有用户认证的。他采用的是当前系统用户,即在linux下输入命令 'whoami' 得到的用户,而其他的客户端访问HDFS时,也可以设置系统变量来修改这个用户名,导致所有的客户端访问HDFS主节点都可以有最高的权限,删除所有的文件。这是一个件非常危险的事情。
通过两个图来说明一下更直接明了。

图中在hdfs中创建了目录,并且拥有人设置为shihy,权限是700,只有拥有人有权限操作。
用户shihy访问时,通过设置系统用户shihy可以访问。
用户liulei访问时,设置为liulei不可以访问。这是没有问题的。
但是,用户liulei设置系统用户为shihy,那hdfs就认为访问用户就是shihy,就可以访问了,而真实用户其实是liulei。
可以可出,不同的用户,可以通过修改  "HADOOP_USER_NAME" 这个内部属性来修改HDFS识别到的系统用户。

这就需要使用其他方式来做用户的认证,来确认,访问用户A就是A,而不是B。
这里就引入了hdfs支持的一种网络认证协议Kerberos。非常的安全,感兴趣的可以调到这里详细看一下原理。
http://biz.chinabyte.com/189/2038189.shtml

最终就确定了我们的方案。
使用Kerberos做用户认证。证明A就是A,而不是B。规避伪造用户的风险。
使用HDFS的原生协议做权限认证。为每个用户创建自己的私有目录。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hadoop 用户管理 hdfs