HDFS

作者: 第三个账号 | 来源:发表于2018-07-28 08:12 被阅读0次
    优点:
    高可靠
    
    缺点:
    不适合低延迟数据访问
    不适合大量小文件存储
    不适合并发写入,文件随机修改
    
    HDFS分为三个节点
    NameNode:
        存储元数据(文件所有者,权限)
        保存文件,block,DataNode之间的映射关系
        元数据保存在内存之中
        元数据存储到磁盘文件名微fsimage
        block的位置信息不保存到fsimage.
        edits记录堆元数据的操作日志。
        处理客户端的读写服务
    SecondNameNode:
        帮助NameNode合并edits文件到fsimage.
        默认3600秒或者文件大小超过64M,进行edits文件合并。
        fs.checkpoint.period,  fs.checkpoint.size
    DataNode:
        存储文件内容
        文件内容保存在磁盘
        维护block id到DataNode本地文件的映射关系
        向NameNode发送心跳保持联系(3秒),如果NameNode10分钟没有收到心跳,则认为改DataNode已经失效。
    
    block副本存放策略:
        第一个副本:存放在上传文件的DateNode上。如果是集群外提交,则随机挑选一台磁盘不太满,cpu不太忙的节点。
        第二个副本:放置在与第一个副本不同机架的节点上。
        第三个副本:与第二个副本相同机架的节点上。
        更多副本:随机节点
    
    HDFS读流程
    客户端通过NameNode访问HDFS
    ![Kazam_screenshot_00000.png](https://img.haomeiwen.com/i13257943/ef370b13f03dd699.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    
    HDFS文件写入流程
    ![Kazam_screenshot_00002.png](https://img.haomeiwen.com/i13257943/c15f218ec3ba0faa.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
        客户端提交文件信息到NameNode
        NameNode返回DateNode,block信息给客户端
        客户端向DateNode写入block
        DateNode负责副本的复制
        副本复制完成,通知客户端block写入完成
        当所有block都写入完成后,客户端通知NameNode文件写入完成。
    
    HDFS数据存储单元block
    文件被切分成固定大小的数据块
        默认64M,可配置。
        若文件大小不到64M,则单独存成一个block
    文件存储方式
        按大小切分成若干block,存储到不同节点上
         默认每个block都有3个副本
    block大小和副本数通过客户端上传文件时设置。文件上传成功后,文件副本数可变更,block 大小不可变更。
    
    HDFS安全模式:
        文件的block位置信息由DataNode上报给NameNode.当HDFS文件系统重启动时,NameNode会重新接受DataNode上报文件block位置信息。在此期间,HDFS处于安全模式。安全模式下不可写入文件。
    
    HDFS文件权限
        r,w,x
        阻止好人做错事,而不是阻止坏人做坏事
    

    相关文章

      网友评论

          本文标题:HDFS

          本文链接:https://www.haomeiwen.com/subject/cjvnmftx.html