美文网首页
HDFS介绍

HDFS介绍

作者: 乙腾 | 来源:发表于2020-10-21 08:07 被阅读0次

    Overwiew

    HDFS是一个文件系统,用于存储文件,通过目录树来定位文件。

    它是分布式的,有分多服务器联合起来实现其功能。

    使用场景

    适合一次写入,多次读出的场景,且不支持文件的修改。

    是和数据分析,并不适合用来做网盘应用。

    优缺点

    优点

    image.png

    缺点

    image.png

    HDFS的组成单元

    NameNode(nn):1.存储文件的元数据{1.文件信息(文件名,文件目录结构,文件属性(生成时间,副本数,文件权限)),2.每个文件的块列表和块所在的DataNode(Block映射信息)},2.处理客户端读写请求。

    DataNode(dn):在本地文件系统存储文件块数据,以及块数据的校验。

    Secondary NameNode(2nn):是一个辅助后台的程序,用来监控HDFS状态,每隔一段时间获取HDFS元数据的快照。

    HDFS组成架构

    image.png image.png image.png

    HDFS文件块大小

    image.png

    notice

    n1.HDFS默认分块128M

    上面计算的每秒传输大小为100MB只是一个近似值,实际为128M。

    n2.磁盘传输速度

    机械硬盘文件顺序读写的速度为100MB/s

    普通固态为500MB/s

    pcie固态的速度可以达到2000MB/s

    因此块的大小可以分别设为128MB,512MB,2048MB.

    n3.分块大小取决于磁盘传输速率

    CPU,磁盘,网卡之间的协同效率 即 跨物理机/机架之间文件传输速率

    n4.为什么HDFS中块(block)不能设置太大,也不能设置太小?

    1. 如果块设置过大,

    第一点: 从磁盘传输数据的时间会明显大于寻址时间,导致程序在处理这块数据时,变得非常慢;
    
    第二点: mapreduce中的map任务通常一次只处理一个块中的数据,如果块过大运行速度也会很慢。
    
    第三点: 在数据读写计算的时候,需要进行网络传输.如果block过大会导致网络传输时间增长,程序卡顿/超时/无响应. 任务执行的过程中拉取其他节点的block或者失败重试的成本会过高.
    
    第四点: namenode监管容易判断数据节点死亡.导致集群频繁产生/移除副本, 占用cpu,网络,内存资源.
    

    2. 如果块设置过小,

    第一点: 存放大量小文件会占用NameNode中大量内存来存储元数据,而NameNode的物理内存是有限的;
    
    第二点: 文件块过小,寻址时间增大,导致程序一直在找block的开始位置。
    
    第三点: 操作系统对目录中的小文件处理存在性能问题.比如同一个目录下文件数量操作100万,执行"fs -l "之类的命令会卡死.
    
    第四点: ,则会频繁的进行文件传输,对严重占用网络/CPU资源.
    

    总结

    文件块越大,寻址时间越短,但磁盘传输时间越长;

    文件块越小,寻址时间越长,但磁盘传输时间越短。

    相关文章

      网友评论

          本文标题:HDFS介绍

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