zoukankan      html  css  js  c++  java
  • 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上传流程就 走完了

  • 相关阅读:
    Mini440之uboot移植之源码分析board_init_f(二)
    Mini440之uboot移植之源码分析uboot重定位(三)
    Mini440之uboot移植之实践DM9000支持(八)
    Mini2440裸机开发之DM9000
    Mini440之uboot移植之源码分析命令解析(五)
    Mini440之uboot移植之实践NOR启动(六)
    Mini440之uboot移植之实践NOR FLASH支持(七)
    mysql调优和SQL优化
    linux man手册使用相关问题
    关于ca以及证书颁发的一些事
  • 原文地址:https://www.cnblogs.com/zhangqian27/p/9200702.html
Copyright © 2011-2022 走看看