一.Linux文件/目录权限
http://hi.baidu.com/skyforum/item/9946ef57b371789608be1747,不了解的需要做一个基本的了解。
二. FsAction
- FsAction对应着文件/目录的操作权限。rwx。
- FsAction犀利之处在于枚举类型里的每一个权限与二进制的对应。
- 有了上面的对应,我们可以组合出所有的权限
public enum FsAction { // POSIX style NONE("---"), EXECUTE("--x"), WRITE("-w-"), WRITE_EXECUTE("-wx"), READ("r--"), READ_EXECUTE("r-x"), READ_WRITE("rw-"), ALL("rwx"); private final static FsAction[] vals = values(); //this FsAction是否包含that FsAction public boolean implies(FsAction that) {} //this FsAction和that FsAction 与操作 public FsAction and(FsAction that) {} //this FsAction和that FsAction 或操作 public FsAction or(FsAction that) {} //this FsAction和that FsAction 非操作 public FsAction not() {} }
三. FsPermission
- FsPermission对应着文件/目录的使用者权限,组权限,其他用户权限。
- FsPermission applyUMask(FsPermission umask)方法得到一个去掉了umask权限的新权限。
public class FsPermission implements Writable { private FsAction useraction = null; private FsAction groupaction = null; private FsAction otheraction = null; /** Apply a umask to this permission and return a new one */ public FsPermission applyUMask(FsPermission umask) { return new FsPermission(useraction.and(umask.useraction.not()), groupaction.and(umask.groupaction.not()), otheraction.and(umask.otheraction.not())); } }
四. PermissionStatus
- PermissionStatus描述文件/目录属主,文件组和它的FsPermission。
private String username; private String groupname; private FsPermission permission;
- INode中有一个long型成员变量,代表着PermissionStatus。保存了FsPermission(MODE),文件主号(USER)和用户组号(GROUP)。
private long permission;
五. SerialNumberManager
- Manage name-to-serial-number maps for users and groups.管理着文件属主和文件属主号,文件组和文件组号的对应关系。
- 在持久化信息FSImage中,不保存文件主号和用户组号,它们只是SerialNumberManager分配的,只保存在内存的信息。通过SerialNumberManager得到某文件主的文件主号时,如果找不到文件主号,会往对应关系中添加一条记录。
六. PermissionChecker
- PermissionChecker用于权限检查。
- checkSuperuserPrivilege(UserGroupInformation owner, String supergroup):Verify if the caller has the required permission.
- checkPermission(String path, INodeDirectory root, boolean doCheckOwner,
FsAction ancestorAccess, FsAction parentAccess, FsAction access,
FsAction subAccess):Check whether current user have permissions to access the path.
七. 权限相关类图
相关推荐
hadoop-annotations-3.1.1.jar hadoop-common-3.1.1.jar hadoop-mapreduce-client-core-3.1.1.jar hadoop-yarn-api-3.1.1.jar hadoop-auth-3.1.1.jar hadoop-hdfs-3.1.1.jar hadoop-mapreduce-client-hs-3.1.1.jar ...
hadoop平台下hdfs和mapreduce的源码分析。
java操作Hadoop源码之HDFS Java API操作-上传文件,附带所需全部jar包,欢迎下载学习。
Hadoop 2.X HDFS源码剖析-高清-完整目录-2016年3月,分享给所有需要的人!
hadoop源码2.2.0 Apache Hadoop 2.2.0 is the GA release of Apache Hadoop 2.x. Users are encouraged to immediately move to 2.2.0 since this release is significantly more stable and is guaranteed to ...
编译hadoophadoop-3.2.2-src的源码
hdfs源码剖析 基于hadoop2.6 hdfs源码剖析 基于hadoop2.6
1 环境准备 3 1.1 主机 3 ...2.2.7 第七步:配置journalnode.sh 14 2.2.8 第八步:程序文件分发 16 2.2.9 第九步:配置环境变量 16 3 程序启动 16 3.1 启动zookeeper 16 3.2 启动HDFS 17 3.3 启动YARN 17
阅读《Hadoop 2.X HDFS源码剖析》可以帮助读者从架构设计与源码实现角度了解HDFS 2.X,同时还能学习HDFS 2.X框架中优秀的设计思想、设计模式、Java语言技巧以及编程规范等。这些对于读者全面提高自己的技术水平有很...
java操作Hadoop源码之HDFS Java API操作-创建目录,附带所需全部jar包,欢迎下载学习。
02-hdfs源码跟踪之打开输入流总结.avi 03-mapreduce介绍及wordcount.avi 04-wordcount的编写和提交集群运行.avi 05-mr程序的本地运行模式.avi 06-job提交的逻辑及YARN框架的技术机制.avi 07-MR程序的几种提交...
02-hdfs源码跟踪之打开输入流总结.avi 03-mapreduce介绍及wordcount.avi 04-wordcount的编写和提交集群运行.avi 05-mr程序的本地运行模式.avi 06-job提交的逻辑及YARN框架的技术机制.avi 07-MR程序的几种提交...
│ ├─视频-零基础学习Hadoop3.0-HDFS从入门到源码 │ │ │ 00--课程内容大纲和学习目标.mp4 │ │ │ 01--大数据课程导论--大数据概念.mp4 │ │ │ 02--大数据课程导论--大数据特点(5V特征).mp4 │...
Hadoop_2.X_HDFS源码剖析_带索引书签目录_徐鹏,内容不错,值得阅读!
hadoop 2.7.2 源码,不用去别的地方找了,直接下载下来就能看hadoop的源码
caibinbupt的Hadoop源码分析完整版,包括 HDFS 和 MapReduce。 HDFS: 41章 MapReduce: 14章
阅读《Hadoop 2.X HDFS源码剖析》可以帮助读者从架构设计与源码实现角度了解HDFS 2.X,同时还能学习HDFS 2.X框架中优秀的设计思想、设计模式、Java语言技巧以及编程规范等。这些对于读者全面提高自己的技术水平有很...