![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
HDFS
敲代码的卡普罗尼
这个作者很懒,什么都没留下…
展开
-
HDFS写入数据的流程
首先客户端通过DistributedFileSystem对象调用create()方法创建文件。这时DistributedFileSystem会创建一个DFSOutPutStream,通过PRC调用让NameNode执行同名方法。NameNode此时会进行一系列的检查,包括这个文件是否存在、客户端是否拥有对该文件的权限、自身是否处于正常状态等等。若检查通过NameNode会记录创建操作到编辑日志中...原创 2019-11-03 15:26:34 · 512 阅读 · 0 评论 -
HDFS的安全模式
当 Hadoop的NameNode节点启动时,会进入安全模式阶段。安全模式是HDFS的一种工作状态,处于安全模式的状态下,只像客户端提供文件的只读视图,不接受对命名空间的修改;同时名字节点也不会进行数据块的复制或者删除。Namenode启动时,首先将fsimage载入内存,并执行编辑日志中的操作。一旦文件系统元数据建立成功,便会创建一个空的编辑日志。此时namenode开始监听RPC和Http请...原创 2019-11-03 14:46:52 · 167 阅读 · 0 评论 -
Fsimage与EditLog合并过程
1.SecondaryNameNode周期性(五分钟)通过NameNodeProtocol.getEditLogSize()获取名字节点上edits的大小。如果很小的话,第二名字节点就不需要合并fsimage和edilts。当其达到合并的大小时,Secondarynamenode会通过doCheckpoint()方法开启一次检查点。在doCheckpoint()方法里面会调用rollEditLog...原创 2019-11-03 14:34:59 · 676 阅读 · 1 评论 -
HDFS中的FSImage和Edit Log的介绍以及相关实现类
1.介绍HDFS的文件系统目录树、文件/目录元数据信息以及文件对应的数据块等信息会持久化到磁盘上,保存在FSImage和Edit Log中。其中,Fsimage文件是文件系统元数据的持久性检查点,即保存了某一时刻全量的NameNode的内存信息,该时刻往后的修改信息都会保存在Edit Log中,利用该机制确保了NameNode挂掉之后,内存数据不会丢失(因为全都保存到了磁盘上了)。另外,当Na...原创 2019-11-03 12:50:58 · 689 阅读 · 0 评论 -
HDFS中NameNode、DataNode、Secondary NameNode的作用
1.名字节点名字节点保存的信息主要可以分为三类,分别是:(1)名字节点维护着整个文件系统的文件目录树、文件/目录的元数据信息和文件的数据块索引(每个文件对应的数据块列表)。这些信息在NameNode中保存在两个文件中,分别是FSImage(命名空间镜像)和EditLog(编辑日志)(2)名字节点中保存着数据块与数据节点的对应关系。因此,当我们要读写数据时,首先联系名字节点获取数据所在的Dat...原创 2019-11-03 11:52:11 · 5280 阅读 · 0 评论 -
HDFS源码中客户端、NameNode、DataNode三者通信以及涉及的接口类型
1.通信方式(1)客户端与名字节点、数据节点之间主要是通过RPC的方式进行通信(2)名字节点与第二名字节点之间主要通过http的方式进行通信(3)数据节点之间主要是通过socket的方式进行通信传输数据2. RPC通信涉及的接口类型根据通信角色的不同,HDFS的接口主要分为三种类型:(1)与客户端相关接口,分别是:客户端与NameNode通信的接口ClientProtocol;客户端与...原创 2019-11-03 11:12:55 · 1289 阅读 · 0 评论