我爱编程

hadoop学习笔记(一)

2018-03-02  本文已影响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)。

上一篇 下一篇

猜你喜欢

热点阅读