第三章 Hadoop 分布式文件系统

声明,此连续文章为阅读《Hadoop权威指南第4版》的读书笔记,旨在记录重点内容和阅读心得,有共读的朋友可以交流书中疑惑。
3.1 HDFS的设计

HDFS以流式数据访问模式来存储超大文件,运行于商用硬件集群上。

  • 超大文件
  • 流式数据访问
    HDFS的构建思路:一次写入,多次读取。
  • 高可靠性
  • 高吞吐量
    低延迟的任务不适合在HDFS上运行,对于低延迟的访问需求HBase更合适。
  • 大量的小文件
  • 不支持多用户写入,任意修改文件
    HDFS的文件写入只支持单个写入者,且写操作只是以“只添加”的方式在文件末尾写数据。

3.2 HDFS的概念

  • 数据块
    HDFS块(block),默认128M,HDFS上的文件被分为块大小的多个分块(chunk)。
    数据块这么设计的原因,参考

  • namenode和datanode
    HDFS以一个namenode(管理节点)和多个datanode(工作节点)来运行。
    namenode管理文件系统的命名空间,维护文件系统树及整个树内所有的目录和文件。这些信息已两个文件形式永久保存在本地磁盘上:命名空间镜像文件和编辑日志文件。

    datanode是文件系统的工作节点,根据需要(客户端或者namenode)存储并检索数据块,并定期向namenode发送他们所存储的块的列表。

    namenode的两种容错机制:
    1.备份组成文件系统元数据持久状态的文件。一般配置为写入本地的同时写入一个远程文件系统(NFS)。
    2.运行一个辅助namenode,该namenode的作用是定期合并编辑日志与命名空间镜像,一般在另一台机器上运行,因为其要占用大量CPU,且需要与namenode一样多的内存来执行合并操作。保存合并后命名空间的副本,在主namenode故障时启用。但是辅助namenode保存的状态总是滞后于主节点,所以会丢失部分数据,这种情况会把NFS上备份的元数据复制到辅助namenode并作为新的主namenode运行。

  • 块缓存
    对于datanode从磁盘读取频繁的文件,可以显示的缓存在datanode的内存中,以堆外缓存的形式存在。
    用户或应用可以在缓冲池中增加一个cache directive来指定缓存哪些文件及缓存多久。

  • Federation HDFS
    参考

  • HDFS的高可用性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值