美文网首页我爱编程
hadoop学习笔记(一)

hadoop学习笔记(一)

作者: 桐间纱路 | 来源:发表于2018-03-02 15:44 被阅读0次

    Hadoop思想之源:Google

    面对数据和计算难题

        - 大量的网页怎么存储

        - 搜索算法

    带给我们的关键技术和思想

        - GFS (HDFS)

        - Map-Reduce

        - Bigtable (Hbase)

    分布式存储系统HDFS(Hadoop Distributed File System)

        - 分布式存储系统

        - 提供了高可靠性、高扩展性和高吞吐率的数据存储服务

    分布式计算框架(MapReduce)

        - 分布式计算框架

        - 具有易于编程、高可靠性和高扩展性等优点

    HDFS优点

        - 高容错性

            1.数据自动保存多个副本

            2.副本丢失后自动恢复

        - 适合批处理

            1.移动计算而非数据

            2.数据位置暴露给计算框架

        - 适合大数据处理        

            1.GB、TB 甚至PB级数据

            2.百万规模以上的文件数量

            3.10K+节点

        - 可构建在廉价机器上

            1.通过副本提高可靠性

            2.提供了容错和恢复机制

    HDFS缺点

        - 低延迟数据访问

            1.比如毫秒级

            2.低延迟与高吞吐率

        - 小文件存取

            1.占用NameNode大量内存(NameNode会为每个文件保存元数据信息,小文件过多会导致要保存的元数据信息过多。)

            2.寻道时间超过读取时间(元数据信息过多导致寻址时间长)

        - 并发写入,文件随机修改(修改文件会同时修改文件副本,消耗极大)

            1.一个文件只能有一个写者

            2.仅支持append

    HDFS存储单元(block)

        - 文件被切分成固定大小的数据块

            1.默认数据块大小为64MB(hadoop1.x)/128MB(hadoop2.x),可配置

            2.若文件大小不到64MB/128MB,则单独存成一个block

        - 一个文件储存方式

            1.按大小被切分成若干个block,存储到不同节点上

            2.默认情况下每个block都有三个副本

        - block大小和副本数量通过Client端上传文件时设置,文件上传成功后,副本数可以变更, block size不可变更

    NameNode(NN)

        - NameNode主要功能:接受客户端读写服务

        - NameNode保存metadata信息包括

            1.文件owership和permissions

            2.文件包含哪些块

            3.block保存在哪个DataNode (由DataNode启动时上报)

        - NameNode的metadata信息在启动后会加载到内存

            1.metadata储存到磁盘文件名为“fsimage“

            2.block的位置信息不会保存到fsimage

            3.edits记录对metadata的操作日志

    SecondaryNameNode(SNN)

        - 它不是NN的备份(但可以做备份),它的作用是帮助NN合并edits log 减少NN启动时间

        - SNN执行合并时机

            1.根据配置文件设置的时间间隔fs.checkpoint.period 默认3600秒

            2.根据配置文件设置edits log大小fs.checkpoint.size规定edits文件的最大值,默认是64MB

    SNN合并流程如下图:

    SNN会从NN获取fsimage和edits文件,并把两个文件合并为一个新的fsimage.ckpt文件传回给NN,NN接收到文件后替换原有的fsimage文件。过程中Client产生的任何新log都存入edits.new中,当fsimage完成合并时替换edtis文件。所以,SNN并不持有NN的全部备份(edits.new)。

    相关文章

      网友评论

        本文标题:hadoop学习笔记(一)

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