Hadoop权威指南_读书笔记_第3章 Hadoop分布式文件系统(上)

第3章 Hadoop分布式文件系统

一、HDFS的设计

  • 1.超大文件
    超大文件指 GB、TB甚至PB级别的数据。

  • 2.流式数据访问
    HDFS的构建思路是这样的:一次写入、多次读取是最高效的访问模式。

  • 3.商用硬件
    Hadoop并不需要运行在昂贵的高可靠硬件上。

  • 4.不适合低时间延迟的数据访问
    要求低时间延迟数据访问的应用,不适合在HDFS上面应用。

  • 5.不适合大量小文件
    由于namenode系统的元数据存储在内存中,因此能存储的文件总数受限于namede的内存容量。根据经验,每个文件、目录和数据块的存储信息大约占150字节。尽管存储上百万个文件是可行的,但是存储数十亿个文件就超出了当前硬件的能力。

  • 6.不支持多用户写入,任意修改文件
    HDFS文件的写入只支持单个写入者,且写操作总是以"只添加"的方式在文件尾写数据。

二、HDFS的概念

  • 1.数据块

    • HDFS的块(block)大小默认为128M
    • 块适合数据备份,提高容错能力和高可用性。每个block默认有3个副本
    • HDFS的块为什么设置成128M?
      • HDFS 的块比磁盘块大,其目的主要是为了最小化寻址开销。如果块足够大,从磁盘传输数据的时间,明显大于定位这个块起始位置的时间。因而,传输一个有多个块组成的大文件的时间 取决于磁盘传输的速率,而不受寻址时间的影响。
      • 如果寻址时间为10ms,传输的速率为100MB/s,寻址时间 仅占传输时间的1%是最佳的。则传输时间为1s,所以我们需要将块大小设置成100MB左右。默认的块大小为128M。
      • 块大小随着传输速率的提升,会设置更大。但是块大小也不能设置的过大。map任务通常一次处理一个块的数据,如果过大,作业运行速度就会变慢
  • 2.namenode 和 datanode

    • namenode管理文件系统的命名空间 。它维护着文件系统树 及整个树内的所有文件和目录。这些信息以两个文件的形式永久的保存在本地磁盘上:命名空间镜像文件编辑日志文件。namenode也记录着每个文件在各个块所在的节点信息。
    • datanode是文件系统的工作节点存储并检索数据块,并且定期的向namenode发送存储块的列表。
  • 3.块缓存

    • datanode通常从磁盘中读取块,但对于访问频繁的文件,可以被显示的缓存在datanode的内存中。例如mapjoin中使用的一小的查询表就是块缓存的应用。
  • 4.联邦HDFS

    • 联邦HDFS允许系统通过添加namenode实现扩展,其中每一个namenode管理文件系统命名空间的一部分。 例如,一个namenode管理/user目录下的文件,另一namenode管理/share目录下的文件。
  • 5. HDFS的高可用

    • HDFS的高可用,即namenode的高可用。通过配置 active-standy namenode 可以实现namemode高可用,当active namenode失效了时,备用的standy namenode就会接管任务,处理客户端的请求。
    • HDFS系统中 有一个 故障转移器(failover controller)的实体,管理着将活动namenode 转为备用namenode的过程。默认使用zookeeper 来确保有且仅有一个活动namenode。每一个namenode都运行这着一个轻量级的故障转移器,通过简单的心跳机制,判断该namenode是否失效,并在namenode失效时进行故障企划
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值