Hadoop-INode的相关分析

卫衣 / 双肩包 / T 恤/羽绒服等任选,下单送 CSDN 年卡 程序员周边任选一款实物,直接赠送 CSDN 会员年卡+ Coding Plan,代码学习装备一起拿下 立即抢购

2.1          文件系统中INODE的基本概念

inode译成中文就是索引节点,它用来存放档案及目录的基本信息,包含时间、档名、使用者及群组等。inode分为内存中的inode和文件系统中的inode,为了避免混淆,称前者为VFS inode 而后者以EXT2为代表,称为Ext2 inode。下面分别对VFS inodeExt2 inode做一下简单的描述:

(1)  VFS inode包含文件访问权限、属主、组、大小、生成时间、访问时间、最后修改时间等信息。它是linux管理文件系统的最基本单位,也是文件系统连接任何子目录、文件的桥梁。inode结构中的静态信息取自物理设备上的文件系统,由文件系统指定的函数填写,它只存在于内存中,可以通过inode缓存访问。虽然每个文件都有相应的inode结点,但是只有在需要的时候系统才会在内存中为其建立相应的inode数据结构,建立的inode结构将形成一个链表,我们可以通过遍历这个链表去得到我们需要的文件结点,VFS也为已分配的inode构造缓存和哈希表,以提高系统性能。inode结构中的struct inode_operations *i_op为我们提供了一个inode操作列表,通过这个列表提供的函数我们可以对VFS inode结点进行各种操作。每个inode结构都有一个i结点号i_ino,在同一个文件系统中每个i结点号是唯一的。

(2)  EXT2 inode用来定义文件系统的结构以及描述系统中每个文件的管理信息,每个文件都有且只有一个inode,即使文件中没有数据,其索引结点也是存在的。每个文件用一个单独的Ext2 inode结构来描述,而且每一个inode都有唯一的标志号。Ext2 inode为内存中的inode结构提供了文件的基本信息,随着内存中inode结构的变化,系统也将更新Ext2 inode中相应的内容。Ext2 inode对应的是Ext2_inode结构。

2.2  INODE

INODE类是一个抽象类,主要用于表示File/Directory的层次关系。

它为它的实现类定义了一系列的protected方法,它们包括:setPermissionStatus();设置文件的权限、getPermissionStatus();得到文件的权限、updatePermissionStatus();修改文件的权限。得到用户、设定用户等等。

同时还有部分抽象方法。如:abstract boolean isDirectory();用来判定这个INode是目录还是文件。abstract int collectSubtreeBlocksAndClear(List<Block> v);用于返回这个子树的所有文件数,当这个INode被删除的时候,清除这个子树下面的所有引用。

 

还有一些default方法。如void setLocalName(String name)设置文件名,得到INode的最后一次修改时间。INodeDirectory getParent();得到一个父的INodelong getModificationTime()。得到最后一次的修改时间。

INodeDirectoryINodeFileINode的两个主要实现类。这部分主要应用了合成模式,INodeFile是叶子节点,它没有内部的树结构。而INodeDirectory是树枝节点,它还可以包含子树。

INode的相关类如下所示:

      INode的类结构

 

2.3  INodeDirectory

INodeDirectory主要定义了一个INodeFile的目录结构,它有几个常用的构造函数

INodeDirectory(String name, PermissionStatus  permissions)INodeDirectory     (Permission Status permissions, long mTime) 其中long mTime是最后的修改时间。INodeDirectory(INodeDirectory other)这个构造函数的作用是,直接把当前目录复制成其它的目录。

问题4:int getExistingPathINodes(byte[][] components, INode[] existing)其中的components是一个二维数组,为什么要弄成byte型的?existing这个一维数组存储的是当前INode的路径么,为什么要限制这个数组的大小(难道是由于先前设定的子目录的个数)?这个函数返回的是现在存活的INode的节点的个数?

    INode[] getExistingPathINodes(String path) 函数中调用了this.getExistingPathINodes(components, inodes);  它又不返回个值,不是白调用了?

假设路径是/c1/c2/c3  根据/分隔成c1c2c3 这时String[] str1[0]=c1 ,str2[1]=c2, str3[2]=c3 static byte[][] getPathComponents(String[] strings)再把这一组String转化为byte[][]的二维数组。

2.4  INodeDirectoryWithQuota

   INodeDirectoryWithQuotaINodeDirectory的子类,它有一些定量的限制,如一个文件夹中的子文件夹的数量的限制

2.5  INodeFile

INodeFile中有三个最为重要的元数据,它们分别是:

protected BlockInfo blocks[] = null;//这个INodeFile所包含的块

protected short blockReplication;//复制的次数

protected long preferredBlockSize;//可以看出是对Block大小的一个定义

猜想:其中,blocks是一个BlockInfo的数组,它用来指向这个文件所在的第一个Block,而每一个Block又有三个指针域,这样通过链式的结构就能够完整地读取一个文件了。

这个类中大都是一些对这个文件所属的Block的操作,比较容易理解。

2.6  INodeFileUnderConstruction

这个类是INodeFile的子类,它表示的是正在构造中的INodeFileINodeFileINodeFileUnderConstruction这两个类中共有两个比较有意思的方法它们分别是:

INodeFileUnderConstruction toINodeFileUnderConstruction()INodeFile convert ToInodeFile()它们的作用分别是把一个INodeFile变为UnderConstruction和把一个INodeFileUnderConstruction变为一个INodeFile

 

Mac记事本软件 如果你在生活中有比较多的场景是需要做笔记和记录一些事情的话,一款好用的记事本软件就显得非常重要了,那Mac上哪款记事本软件好用呢?不用着急,今天小编给大家整理了5款好用的Mac记事本软件,各有特色,简单实用,有需要的朋友快和小编一起来看看吧! 1.Outline for Mac(Mac记事本软件) Outline Mac是一款笔记本软件,其结构类似于真正的纸质书籍:笔记本,部分和页面组有助于在笔记中保持顺序,无论其复杂程度如何。适用于Mac的大纲非常适合学生,教师,医生,律师,管理人员以及日常生活中涉及各种 阅读详情

相关推荐

记事本

记事本记事本简介记事本界面设计编程序代码多格式文本框代码(RichTextBox)菜单代码工具栏代码计时器代码窗体代码 记事本简介 记事本界面设计 编程序代码 多格式文本框代码(RichTextBox) 菜单代码 工具栏代码 计时器代码 窗体代码 ...

zhujianghan的博客 2787

程序员必定会爱上的10款软件

程序员必定会爱上的10款软件 第一款:TrueCrypt TrueCrypt可能很多人没用过,它是一个加密软件,能够对磁盘进行加密。还在担心自己电脑中的重要文件、私密档案被人查看。什么,你以为把文件设置了隐藏属性别人就看不到了?:) :)快来用TrueCrypt ,你必定会爱上它的。 特点:对某一磁盘分区进行加密,开启计算机后,如果你没有打开TrueCrypt 这个软件,这个

xyxinxue 博客 1077

选择合适的Notepad文本编辑

Notepad(记事本)是Windows操作系统中的一款基础文本编辑器,由于其轻量级的特性,它成为了许多用户日常工作中不可或缺的工具。尽管Notepad的功能简单,但其核心功能足以满足基本的文本编辑需求。在本章中,我们将探讨Notepad的核心功能,包括文本创建、编辑、保存以及格式化等基本操作。在本章中,我们深入探讨了Notepad的替代品,并对这些编辑器进行了功能对比。这不仅有助于选择适合自己的编辑器,还加深了对现代编辑器功能和特性的理解。

weixin_31459297的博客 1383

五款最好用的记事本编程软件比UltraEdit强大

记事本软件是我们平常用得最多的工具之一,然而Windows自带的NotePad功能太过简单,市面上虽有不少记事本软件,但跟全球最顶级的五个最好用的记事本软件相比,还有相当大的差距!   1、UltraEdit-32官方简体中文版:记事本中的大哥大   UE毫无疑问是记事本软件

fantasyccb的专栏 1万+

UltraEdit(ue记事本)科学免费激活使用教程【你懂得,亲测有效】

因为大家都知道的原因,这里发不出来,关注公众号发送【ue记事本】获取。 资源来源网络,侵权联系删除

『愚』的博客 2457

notepad++二款强悍的插件!

前几天用notepad++编辑XML,用TextFX HTML Tidy格式化,从华军下载的6.13版没附带该插件,去下载了个最新的TextFX 不带Tidy。在网上一找资料要找notepad++5.9版的安装包,其中带有TextFX HTML Tidy~~唉,真麻烦。下载安装后复制到安装目录\plugins\Config\tidy 都OK后,一格式化,晕了,里面的汉字全变乱码了。没办法,只

king_xing的专栏 1万+

关于MySQL数据库04

文章目录前言一、记事本推荐二、数据库相关(DDL)1.SQL关键字2.字符集总结 前言 提示:以下是本篇文章正文内容,下面案例可供参考 一、记事本推荐 Nodepad++ Sublime 使用 : (1)在桌面 创建一个文本文件。 (2)把这个文件的后缀名改成sql (3)这个文件之后用nodepad++打开这个文件 (4)SQL语句的关键字会有提示 Select 二、数据库相关(DDL) 1.SQL关键字 Create:创建 Show:展示,查看 Database:数据库 Data:数据 Date:..

hunhan_1220的博客 203

五个最佳的免费网络记事本

 当我们在外面上网时(比如公司,网吧),总有一些好的文章,好的想法,好的链接需要保存下来,这时网络记事本就派上用场了。网络记事本的好处是简单易用,无需携带U盘什么的,可以方便的复制,粘贴,随时随地回忆。继续阅读五个最好用的免费网络记事本:   1)QQ网络记事本  登录QQ邮箱后,可看到左侧下方有“记事本”,还有“文件中转站”,记事本里可以记事,还可以加锁,界面非常简约时尚,没有多余的广告。而...

上下求索 7400

三款记事本替代工具 哪个最好用?

三款记事本替代工具 哪个最好用? http://www.sina.com.cn  2008年08月27日 08:35  IT168.com

skyremember的专栏 6万+

五款记事本替代软件

导读:   记事本是Windows操作系统中自带的文本编辑器,由于其小巧简单,被人们大量频繁使用。但由于其过于简陋,很多我们需求的功能它不能够完成,就有了记事本替代软件。与我前面文章能改变你使用习惯的十大免费软件中提到的ConTEXT类似,不过,ConTEXT有点占用CPU资源。记事本的不足之处主要表现在以下几个方面:   ◆ 不支持多文档界面。如果你用记事本打开了一个文本文件,你想再建一

wozhilei的专栏 6227

python GUI开发: tkinter菜单创建,记事本和画图软件综合项目的实战演练

GUI 程序通常都有菜单,方便用户的交互。我们一般将菜单分为两种: 1. 主菜单。 2.上下文菜单。

景天科技苑 3万+

Android Studio——记事本案例

因为记事本的纪录列表是使用ListView控件展示的,因此需要建立一个数据适配器对ListView控件进行数据适配。1、先创建一个DBUtils类,在该类中定义数据库的名称、表名、数据库版本、数据库表中的列名以及获取当前日期等信息。因为添加记录界面有保存和删除按钮,因此创建记录类实现点击事件,将编的内容添加到数据库中。记事本的每个记录都会有记录内容和记录时间这两个属性,因此需要建立一个实体类用于存放这些属性。因为记事本的存储和读取记录的数据都是通过数据库完成的,因此需要创建数据库。

m0_61793503的博客 7731

android 记事本软件,安卓日历记事本软件

哪款手机记事本或者日历软件比较好这些都可以使用系统自带的,自己的记事本都差不多,严格来讲,这类功能单一的东西差别还是比较小的,苹果的有手功能,锤子便签可以markdown,还有魅族的便签,各有特色吧,其实差异不大,主要是自己多用用习惯就好。至于日历,个人一直都是outlook,这个是第三方的,各个平台都有。自带日历主要是看日期的话,其实都一样。万年历可以自己下载一个,现在一般都自带农历了。哪款...

weixin_33162074的博客 943

电脑桌面记事本便签软件,电脑记事本app

好用便签具备定时提醒功能,你可以为你的待办事项设置单次循环,每天、每周、每月甚至是公历和农历的提醒。这样一来,你就可以确保自己不会忘记任何一个重要事项。

bianqian555的博客 1316

计算机管理记事本,电脑记事本软件

记事本|34.3MB更新时间:2020-11-30普通用户可以把vim编辑器当成一个笔记软件,用它记录生活和工作中的重要信息,程序员能把它作为办公利器,它支持多种语言类型,可快速编译调试程序,并且这是一款开源软件软件特色一.普通人的编辑利器之所以第一点就提到这个,是因为”文字处理”当然是一个编辑器最基本的功能,而能把编辑的体验发挥到极致的也恐怕只有vim而已了。1.免费用户再也不用去网上辛苦的下...

weixin_33754744的博客 552

软件分享--安卓纯文本记事本软件,支持多记事本与密码

2.显示时间范围(三天内、五天内、一周内等)

m0_60352504的博客 828

记事本备忘录软件哪个好用,好用的记事本推荐

当然了,在选择记事本备忘录软件时,要根据个人需求来进行权衡取舍,并结合自身习惯和工作方式来进行选择。在当今信息爆炸的时代,随着生活节奏的加快和工作压力的增大,人们对于记事本备忘录软件的需求也越来越迫切。面对市场上琳琅满目的各类软件选择,如何找到一款适合自己使用习惯和工作需求的记事本备忘录软件成为了许多人头疼的问题。于是,我开始寻找一款好用的记事本备忘录软件。在尝试了多款软件后,我终于找到了好用便签——这款让我爱不释手的记事本备忘录软件。其次,好用便签的提醒功能让我彻底告别了忘事的烦恼。

tuodianke的博客 1164

这 4 款电脑记事本软件,得试试

哇塞,这4款电脑记事本软件全部支持网页版(免安装)呢,并且还支持多端同步,yyds~看完今天的分享对你是不是有所启发呢,有任何想法都欢迎大家后台私信阿常,一起探讨交流。有,这4款电脑记事本软件,不仅免费实用,还支持多平台同步,快来试试吧!十年职场历程,拥有丰富的软件测试经验,以及项目管理经验。免费好用的电脑记事本软件有推荐的吗?...

weixin_44079378的博客 8379

提升效率的PCNote桌面记事本软件设计

为了适应不同的使用场景,文本编辑器的搜索功能通常包含多种搜索模式。例如,用户可以选择“向前”或“向后”搜索,以确定搜索的方向性。同时,用户可以根据个人喜好设置搜索热键,自定义搜索行为,以提高工作效率。为了实现搜索模式的多样化,文本编辑器通常支持正则表达式搜索,允许用户使用复杂的字符模式进行搜索。这种高级搜索功能虽然学习曲线较陡,但对于经常处理复杂文本的用户来说,是不可或缺的工具。

weixin_31749299的博客 724
上一篇: Hadoop-Block的相关分析
下一篇: Hadoop-DataNode的相关分析(1)
最牛傻蛋
博客等级 码龄24年 43粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值