HDFS笔记(一)

1. HDFS 是什么?

    Hadoop分布式文件系统(Distributed File System)-HDFS(Hadoop Distributed File System)

2. HDFS 架构

    

    首先HDFS是一个分布式文件系统,就是说在一个集群上做了一个文件系统。一般的集群都是主从结构。namenode是主,datenode是从。

    我们来看一下这几个概念

    Client:就是客户端。

              1、文件切分。文件上传 HDFS 的时候,Client 将文件切分成 一个一个的Block,然后进行存储。

              2、与 NameNode 交互,获取文件的位置信息。

              3、与 DataNode 交互,读取或者写入数据。

              4、Client 提供一些命令来管理 HDFS,比如启动或者关闭HDFS。

              5、Client 可以通过一些命令来访问 HDFS。

    NameNode:就是 master,它是一个主管、管理者。

               1.管理者文件系统命名空间          

               --维护着文件树及树中的所有文件和目录

               2.存储元数据

               --namenodde 保存元信息的种类有

                 文件名目录名及它们之间的层级关系

                 文件目录和所有者及其权限

                 每个文件块和名及文件有哪些块组成

                 注:元数据保存在内存中

                        namenode元信息并不包含每个块的位置信息

               3.保存文件,block,datanode 之间的映射关系

               4.配置副本策略

               5.处理客户端读写请求

    DataNode:就是Slave。NameNode 下达命令,DataNode 执行实际的操作。

               1.负责存储实际的数据块,负责为系统客户端提供数据块的读写服务

               2.根据NameNode 的指示进行创建、删除和复制等操作

               3.心跳机制,定期报告文件块列表信息

               4.datanode之间进行通信,块的副本处理

    Secondary NameNode:并非 NameNode 的热备。当NameNode 挂掉的时候,它并不能马上替换 NameNode 并提供服务。

              1、辅助 NameNode,分担其工作量。

              2、定期合并 fsimage和fsedits,并推送给NameNode。

              3、在紧急情况下,可辅助恢复 NameNode。

3. HDFS上传流程

    

    过程解析:

    这里描述的 是一个256M的文件上传过程

    ① 由客户端 向 NameNode节点节点 发出请求

    ② NameNode 向Client返回可以可以存数据的 DataNode 这里遵循 机架感应 原则

    ③ 客户端 首先 根据返回的信息 先将 文件分块(Hadoop2.X版本 每一个block为 128M 而之前的版本为 64M

    ④ 然后通过那么Node返回的DataNode信息 直接发送给DataNode 并且是 流式写入 同时 会复制到其他两台机器

    ⑤ dataNode 向 Client通信 表示已经传完 数据块 同时向NameNode报告

    ⑥ 依照上面(④ 到 ⑤)的原理将 所有的数据块都上传结束 向 NameNode 报告 表明 已经传完所有的数据块

    这样 整个HDFS上传流程就 走完了

猜你喜欢

转载自www.cnblogs.com/zhangqian27/p/9200702.html