一. FSEditLog类图
二. FSEditLog
- FSEditLog提供了对editlog文件的操作方法。简单的类,方法一个个看。
- editStreams保存着一个fsimage下所有的editlog文件对应的输出流EditLogOutputStream。
三. FSEditLog方法
- void open():Create empty edit log files.Initialize the output stream for logging.当open方法被都调用时,会把fsimage下所有的editlog文件流加到editStreams中。
public synchronized void open() throws IOException { Iterator<StorageDirectory> it = fsimage.dirIterator(NameNodeDirType.EDITS); while (it.hasNext()) { StorageDirectory sd = it.next(); File eFile = getEditFile(sd); EditLogOutputStream eStream = new EditLogFileOutputStream(eFile); editStreams.add(eStream); }
- int loadFSEdits(EditLogInputStream edits,MetaRecoveryContext recovery):Load an edit log, and apply the changes to the in-memory structure.加载硬盘上的editlog,应用到内存文件树中。从硬盘中读取editlog后,根据每个opcode来构建文件树。
- void logEdit(byte op, Writable ... writables):从editStreams里取出所有输出流,写editlog到硬盘。
- log*(...):对应每个操作日志。
- void rollEditLog():Closes the current edit log and opens edits.new. 对应着http://zy19982004.iteye.com/admin/blogs/1870624三.2
- void purgeEditLog():Removes the old edit log and renamed edits.new as edits. Reopens the edits file. 对应着http://zy19982004.iteye.com/admin/blogs/1870624三.6的Roll edit.new
四. log*记录哪些信息
- logOpenFile(OP_ADD):申请lease path(路径)/replication(副本数,文本形式)/modificationTime(修改时间,文本形式)/accessTime(访问时间,文本形式)/preferredBlockSize(块大小,文本形式)/BlockInfo[](增强的数据块信息,数组)/permissionStatus(访问控制信息)/clientName(客户名)/clientMachine(客户机器名)
- logCloseFile(OP_CLOSE):归还lease path/replication/modificationTime/accessTime/preferredBlockSize/BlockInfo[]/permissionStatus
- logMkDir(OP_MKDIR):创建目录 path/modificationTime/accessTime/permissionStatus
- logRename(OP_RENAME):改文件名 src(原文件名)/dst(新文件名)/timestamp(时间戳)
- logSetReplication(OP_SET_REPLICATION):更改副本数 src/replication
- logSetQuota(OP_SET_QUOTA):设置空间额度 path/nsQuota(文件空间额度)/dsQuota(磁盘空间额度)
- logSetPermissions(OP_SET_PERMISSIONS):设置文件权限位 src/permissionStatus
- logSetOwner(OP_SET_OWNER):设置文件组和主 src/username(所有者)/groupname(所在组)
- logDelete(OP_DELETE):删除文件 src/timestamp
- logGenerationStamp(OP_SET_GENSTAMP):文件版本序列号 genstamp(序列号)
- logTimes(OP_TIMES):更改文件更新/访问时间 src/modificationTime/accessTime
相关推荐
hadoop-auth-3.1.1.jar hadoop-hdfs-3.1.1.jar hadoop-mapreduce-client-hs-3.1.1.jar hadoop-yarn-client-3.1.1.jar hadoop-client-api-3.1.1.jar hadoop-hdfs-client-3.1.1.jar hadoop-mapreduce-client-jobclient...
hadoop平台下hdfs和mapreduce的源码分析。
java操作Hadoop源码之HDFS Java API操作-上传文件,附带所需全部jar包,欢迎下载学习。
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的源码
Hadoop 2.X HDFS源码剖析-高清-完整目录-2016年3月,分享给所有需要的人!
2.2 hadoop 10 2.2.1 第一步:解压 10 2.2.2 第二步:配置core-site.xml 11 2.2.3 第三步:配置hdfs-site.xml 11 2.2.4 第四步:配置mapred-site.xml 13 2.2.5 第五步:配置yarn-site.xml 13 2.2.6 第六步:配置...
02-hdfs源码跟踪之打开输入流总结.avi 03-mapreduce介绍及wordcount.avi 04-wordcount的编写和提交集群运行.avi 05-mr程序的本地运行模式.avi 06-job提交的逻辑及YARN框架的技术机制.avi 07-MR程序的几种提交...
hdfs源码剖析 基于hadoop2.6 hdfs源码剖析 基于hadoop2.6
02-hdfs源码跟踪之打开输入流总结.avi 03-mapreduce介绍及wordcount.avi 04-wordcount的编写和提交集群运行.avi 05-mr程序的本地运行模式.avi 06-job提交的逻辑及YARN框架的技术机制.avi 07-MR程序的几种提交...
java操作Hadoop源码之HDFS Java API操作-创建目录,附带所需全部jar包,欢迎下载学习。
阅读《Hadoop 2.X HDFS源码剖析》可以帮助读者从架构设计与源码实现角度了解HDFS 2.X,同时还能学习HDFS 2.X框架中优秀的设计思想、设计模式、Java语言技巧以及编程规范等。这些对于读者全面提高自己的技术水平有很...
│ ├─视频-零基础学习Hadoop3.0-HDFS从入门到源码 │ │ │ 00--课程内容大纲和学习目标.mp4 │ │ │ 01--大数据课程导论--大数据概念.mp4 │ │ │ 02--大数据课程导论--大数据特点(5V特征).mp4 │...
Hadoop_2.X_HDFS源码剖析_带索引书签目录_徐鹏,内容不错,值得阅读!
hadoop 2.7.2 源码,不用去别的地方找了,直接下载下来就能看hadoop的源码
Hadoop学习总结,内容包括: 1. HDFS简洁 2. HDFS读写过程解析 3. MapReduce入门 4. MapReduce过程解析 5. Hadoop运行痕迹 6. MapReduce源码分析总结
阅读《Hadoop 2.X HDFS源码剖析》可以帮助读者从架构设计与源码实现角度了解HDFS 2.X,同时还能学习HDFS 2.X框架中优秀的设计思想、设计模式、Java语言技巧以及编程规范等。这些对于读者全面提高自己的技术水平有很...