Hadoop 学习笔记整理二

大纲:
一. 大数据启蒙认识
二. HDFS
三. Hadoop1.0的非HA模式(SecondaryNameNode)
四. Hadoop2.0或者3.0的HA模式

今天的笔记是关于第二点Hadoop1.0的非HA模式(SecondaryNameNode)

Hadoop中的HDFS模块(SecondaryNameNode)

首先必须要了解的HDFS(文件系统)理论知识点如下:

  • 存储模型
  • 架构设计
  • 角色功能
  • 元数据持久化
  • 安全模式
  • 副本放置策略
  • 读写流程
  • 安全策略

存储模型的特点

  • 文件线性按字节切割成块(block),具有offset,id
  • 文件与文件的block大小可以不一样
  • 一个文件除最后一个block,其他block大小一致
  • block的大小依据硬件的I/O特性调整
  • block被分散存放在集群的节点中,具有location
  • Block具有副本(replication),没有主从概念,副本不能出现在同一个节点
  • 副本是满足可靠性和性能的关键
  • 文件上传可以指定block大小和副本数,上传后只能修改副本数
  • 一次写入多次读取,不支持修改
  • 支持追加数据

问题一:Hadoop 为什么要设置HDFS文件系统?

为了实现Hadoop的功能,必须要一个具有以下特点的文件系统:

  1. 超大文件的分布式存储
  2. 文件的高并发访问
  3. 高可扩展性
  4. 高可靠性
  5. 高容错
  6. 高安全性
  7. 高获得性

也正是基于这些特点,所以建立了HDFS文件系统,这也是为什么我们需要它。

问题二:为什么HDFS的block相较于传统文件系统来说大很多?

因为HDFS的的一个设计目标就是能够快速读取。而对于磁盘来说,读取一个数据块涉及到三种时间开销,寻道时间、旋转时间和传输时间。传输时间是磁盘本身的特性,不可能通过人工手段来改变,但是对于寻道时间和旋转时间,则可以通过增大一次读取的数据量来减少寻道和旋转的次数。这样的话,就可以将读取数据的速率设计为接近真实的磁盘传输速率。

举个例子,假设某磁盘的寻道时间和旋转时间之和为10ms,传输速率为100MB/s。那么,如果想设计一种读取方式让寻道时间与旋转时间总和 不高于总读取时间的1%的话,则需要将block的大小设置为100MB。

当然,这个观点不可能长期成立。在MapReduce中,一个Map任务一般一次只处理一个block。那么,当Map任务的数量少于集群中节点的个数时,完成此job所需时间就会慢于其他情况。

问题三: 为什么HDFS中块(block)不能设置太大,也不能设置太小?

  1. size设置过大:
    如果设置的过大,将会导致数据传输时间明显大于寻址时间,导致程序处理这块的时间,变得很慢。
  2. size设置过小:
    • size过小势必导致block的数量变多,当数量多到一定程度的时候,会让namenode的开销变大
    • 寻址时间也会变多

问题四:应该怎么设置block的size?

总的来说磁盘传输速率决定了block size的设置。

  1. HDFS中平均寻址时间大约10ms
  2. 经过实测,寻址时间为了磁盘传输时间的1%,为最佳状态。因此得到如下公式:
最佳传输时间:10ms / 0.01 = 1s
  1. 目前磁盘传输速率普遍为100M/S
    block size=100M/S * 最佳传输时间 = 100M

注意 实际生产过程中,磁盘传输速率为200MB/s时,一般设定block大小为256MB,以此类推。

问题五:完整的文件被切分成分片之后,出现丢失的时候,该怎么办?

HDFS的解决方案是: 分片冗余,本地校验,需要数据块存储模式


image.png
image.png

数据冗余式存储,直接将多份的分片文件交给分片后的存储服务器去校验。
冗余后的分片文件还有个额外功能,只要冗余的分片文件中有一份是完整的,经过多次协同调整后,其他分片文件也将完整。
经过协调校验,无论是传输错误,I/O错误,还是个别服务器宕机,整个系统里的文件是完整的。

参考:
https://www.jianshu.com/p/49eee8e5309a?utm_campaign
https://blog.csdn.net/s5660gt/article/details/83655584
https://blog.csdn.net/wx1528159409/article/details/84260023
https://www.cnblogs.com/sddai/p/8647795.html
https://www.cnblogs.com/guarderming/p/11088518.html

你可能感兴趣的:(Hadoop 学习笔记整理二)