5分钟深入浅出 HDFS.doc


立即下载 NetworkAttachedStorage
2024-04-19
文件 HDFS des client 负责 block Data 机器 创建 系统
772.5 KB

通过前面几篇文章的介绍,我们深入讨论了 Hadoop MapReduce 处理数据的过程,以及优化 MapReduce 性能的方方面面。 期间被反复提及的 HDFS 分布式文件存储系统,一直没有机会深入讲解。那么今天我们就仔细学习一下 HDFS 是如何工作的。
HDFS架构
HDFS Client
大家还记得我们如何向 Hadoop cluster 提交任务吗?是通过 Hadoop client 进行的。
同样,我们和 HDFS 打交道也是通过一个 client library. 无论读取一个文件或者写一个文件,我们都是把数据交给 HDFS client,它负责和 Name nodes 以及 Data nodes 联系并传输数据。
Name Nodes
我们在之前的文章中简要提及过 HDFS 把文件存在多个机器上,并且不把“在哪些机器上存的”,“如何存的”这些内部的信息暴露给使用者,而是只显示给用户一个像普通 linux 文件结构的文件系统。
那么,是谁在管理这些信息的呢?这就是 Name nodes.
在 HDFS 里, Name node 保存了整个文件系统信息,包括文件和文件夹的结构。其实和 linux 上的真的很像, HDFS 也是把文件和文件夹表示为 inode, 每个 inode 有自己的所有者,权限,创建和修改时间等等。HDFS 可以存很大的文件,所以每个文件都被分成一些 data block,存在不同机器上, name node 就负责记录一个文件有哪些 data block,以及这些 data block 分别存放在哪些机器上。
Name nodes 还负责管理文件系统常用操作,比如创建一个文件,重命名一个文件,创建一个文件夹,重命名一个文件夹等。
当我们通过 HDFS client 向 HDFS 读取或者写文件时,所有的读写请求都是先发给 Name nodes, 它负责创建或者查询一个文件,然后再让 HDFS client 和 Data nodes 联系具体的数据传输。
Data Nodes
存储 data block 的机器叫做 Data nodes. 在读写过程中,Data nodes 负责直接把用户读取的文件 block 传给 client,也负责直接接收用户写的文件。
当我们读取一个文件时:
HDFS clie


文件/HDFS/des/client/负责/block/Data/机器/创建/系统/ 文件/HDFS/des/client/负责/block/Data/机器/创建/系统/
-1 条回复
登录 后才能参与评论
-->