hdfs工作原理图解
来源:互联网 发布:电脑开单软件 编辑:程序博客网 时间:2024/04/29 10:55
hdfs文件系统分namenode和datanode两部分
这里分析下客户端在上传和下载时它们的工作机制
namenode和secondarynamenode的工作原理
namenode的职责:
1、记录元数据
元数据就是datanode上每个文件的块信息
块信息包括
文件的路径 文件的副本数量 文件的切块大小 文件的块信息 文件块的位置信息
2、响应客户端请求
处理客户端请求
3、负载均衡
平衡datanode节点上的文件块储存负载
说明:
- namenode元数据以树状结构完整的储存在内存中,只在一开始序列化出一个镜像文件(镜像一)
- namenode把之后的操作记录到日志里
- secondarynamenode会定期从namenode下载原镜像和日志文件,其中原镜像只在第一次时下载,然后在自己机器上反序列化镜像到内存,并根据日志文件修改它,并序列化出新的镜像,上传给namenode(镜像二),来保证namenode上有及时的备份文件
- 这样做的好处是将namenode把元数据信息存到磁盘的操作交给了secondarynamenode机器 ,自己只做记录日志的操作,从而提高性能
图中fsimage为两个镜像文件,edits为操作日志文件
datanode工作机制
职责:
- 接收客户端发送过来的文件块block
- 为客户端读取指定的文件块block
- 定期向namenode汇报自身所持有的block,以保证集群的整体负载均衡
hdfs文件上传图解
说明:
- 1、根namenode通信请求上传文件,namenode检查目标文件是否已存在,父目录是否存在
- 2、namenode返回是否可以上传
- 3、client请求第一个 block该传输到哪些datanode服务器上
- 4、namenode返回3个datanode服务器ABC
- 5、client请求3台dn中的一台A上传数据(本质上是一个RPC调用,建立pipeline),A收到请求会继续调用B,然后B调用C,将整个pipeline建立完成,逐级返回客户端
- 6、client开始往A上传第一个block(先从磁盘读取数据放到一个本地内存缓存),以packet为单位,A收到一个packet就会传给B,B传给C;A每传一个packet会放入一个应答队列等待应答
- 7、当一个block传输完成之后,client再次请求namenode上传第二个block的服务器。
hdfs文件下载图解
说明:
- 1、跟namenode通信查询元数据,找到文件块所在的datanode服务器
- 2、挑选一台datanode(就近原则,然后随机)服务器,请求建立socket流
- 3、datanode开始发送数据(从磁盘里面读取数据放入流,以packet为单位来做校验)
- 4、客户端以packet为单位接收,现在本地缓存,然后写入目标文件
阅读全文
0 0
- hdfs工作原理图解
- 【HBase】图解 HDFS 工作原理
- 漫画HDFS工作原理
- 漫画HDFS工作原理
- hdfs工作原理
- 漫画HDFS工作原理
- 漫画HDFS工作原理
- 漫画HDFS工作原理
- HDFS工作原理
- HDFS工作原理
- HDFS的工作原理
- HDFS的工作原理
- HDFS的工作原理
- HDFS工作原理
- HDFS工作原理
- HDFS工作原理
- 图解电源工作原理
- 图解搜索引擎工作原理
- 客户信息管理系统8—客户信息的模糊查询
- 智商之外的“商”
- Xcode执行项目整理——UIApplication对象简单笔记
- 机械师T58-T3笔记本怎么bios设置u盘启动?
- HTML5 data-* 自定义属性
- hdfs工作原理图解
- wampserver下升级php7
- 微擎模块机制分析
- phantomJS利用cookie实现自动登录
- 几句话浅谈算法
- 实验吧解题笔记——编程(五)
- 杂题 [Tjoi 2013]松鼠聚会
- SharedPreferences极致封装——可能是全网最简单的封装了
- Java 多态、内部类、异常、包