博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDFS体系结构详解
阅读量:7128 次
发布时间:2019-06-28

本文共 999 字,大约阅读时间需要 3 分钟。

  hot3.png

HDFS的体系框架是Master/Slave结构,一个典型的HDFS通常由单个NameNode和多个DataNode组成。NameNode是一个中心服务器,负责文件系统的名字空间的操作,比如打开、关闭、重命名文件或目录,它负责维护文件路径到数据块的映射,数据块到DataNode的映射,以及监控DataNode的心跳和维护数据块副本的个数。集群中的DataNode一般是一个节点一个,负责管理它所在节点上的存储。HDFS暴露了文件系统的名字空间,用户能够以文件的形式在上面存储数据。从内部看,一个文件其实被分成一个或多个数据块,这些块存储在一组DataNode上。DataNode负责处理文件系统客户端的读写请求。在NameNode的统一调度下进行数据块的创建、删除和复制。  

所有对目录树的更新和文件名和数据块关系的修改,都必须能够持久化,文件在HDFS中存储图如图2: 
25145357_lRt7.png 
图2  文件在HDFS中的存储图 
HDFS涉及到NameNode、DataNode和客户端们之间的交互。本质上,客户端与NameNode通讯是通过获取或者修改文件的元数据,与 DataNode进行实际的I/O操作。如图3所示,在HDFS中有三个重要的角色:NameNode、DataNode和Client,其中Client就是需要获取分布式文件系统文件的应用程序。 
这里通过三个操作来说明他们之间的交互关系 
(l)文件写入。首先Client向NameNode发起文件写入的请求,NameNode根据文件大小和文件块配置情况,返回给Client它所管理部分DataNode的信息。Client将文件划分为多个Block,根据DataNode的地址信息,按顺序写入到每一个DataNode块中。 
(2)文件读取。Client向NameNode发起文件读取的请求,NameNode返回文件存储的DataNode的信息。Client根据返回的信息读取DataNode上的文件信息。 
(3)文件Block复制。NameNode发现部分文件的Block不符合最小复制数或者部分DataNode失效,通知DataNode相互复制Block。DataNode收到通知后开始直接相互复制。 
25145358_5XgP.png 
图3  HDFS结构图

更多精彩内容请关注:

关注超人学院微信二维码:145339_tUTY_2273204.jpg

转载于:https://my.oschina.net/crxy/blog/419612

你可能感兴趣的文章
Android中的设计模式之单例模式
查看>>
使用Cordova将您的前端JavaScript应用打包成手机原生应用
查看>>
用Python玩转微信
查看>>
Bootstrap 小结
查看>>
《JavaScript权威指南》——JavaScript核心
查看>>
C语言 时间函数的学习
查看>>
你真的懂Redis事务吗?
查看>>
收藏 | 12个ggplot2拓展程序助你强化R可视化
查看>>
1-Linux C语言编程基本原理与实践-学习笔记
查看>>
WRF-DA代码编译与安装(二)——WRF-DA模块的编译与安装
查看>>
2018年美团Android校招
查看>>
Spring消息之WebSocket
查看>>
Java 文件流操作.
查看>>
《11招玩转网络安全》之第三招:Web暴力破解-Low级别
查看>>
Eclipse快捷键大全
查看>>
Android实现TextView字符串波浪式跳动
查看>>
NumPy—random随机数生成函数总结
查看>>
第10章节-Python3.5-Django路由分发
查看>>
排序三 直接插入排序
查看>>
输入输出流体系图
查看>>