zoukankan      html  css  js  c++  java
  • 《Hadoop权威指南》笔记 第三章 HDFS

       

    Hadoop是一次写入, 多次读取,因为这种被认为是最高效的访问模式.

       

    HDFS为高数据吞吐量优化, 高时间延迟. 对于低延迟, HBase是更好的选择.

       

    大量的小文件不适合HDFS: namenode将文件系统的元数据存储在内存中,包括文件,目录,数据块的存储信息,如果有大量的小文件,那么这些存储信息占了很大的内存,NameNode有可能没有这么大的内存来装这么多的信息

       

    不支持多用户写入, 任意修改文件: HDFS中的文件可能只有一个writer, 且写操作总是append到末尾.

       

       

       

       

       

    数据块(block)

       

    文件在HDFS上以数据块(block)为单位来存储,每个数据块默认为64MB大小,很多情况下设置成128MB.

       

    之所以块如此之大, 是为了最小化寻址开销.

       

       

    显示块信息:

       

    % hadoop fsck / -files -blocks

       

    HDFS集群上两类节:namenodedatanode

       

    管理者-工作者模式, 一个namenode(管理者)多个datanode(工作者).

       

    namenode管理文件系统的命名空间, 维护文件系统树及整棵树内的所有文件和目录:


    namenode
    也记录每个文件中各个块所在的数据节点信息, 不存储真正的文件数据,

    不永久保存块的位置信息, 位置信息会在系统启动是由数据节点重建.

       

    datanode是工作节点. 存储数据并检索数据块, 定期像namenode发送它们所存储块的列表.

       

    namenod的容错非常重要.

       

       

       

    备份组成文件系统元数据持久状态的文件.写入NFS网络文件系统中。 原子操作.

       

    辅助namenode, 不是namenode. 定义通过编辑日志合并命名空间镜像, 防止编辑日志过大. 保存状态滞后于主节点. 所以, 若主节点全部失效, 一般把namenode元数据全部复制到辅助namenode, 作为新的namenode运行.

       

    DataNode存储数据

       

    假设,我们需要在HDFS上存储一个133MB的文件,按它的大小,会被分成三个数据块(64+64+3)

       

    NameNode将这三个块分散到DataNode上,并把映射信息记录下来

       

       

       

       

  • 相关阅读:
    【转】C++轻量级可配置语法分析器
    [转载]正则表达式大全
    Batch update returned unexpected row count from update 错误解决方法
    [转载]C# ToString格式字符串整理(Format)(数字、日期和枚举的标准格式设置说明符)(SamWang)
    Centos配置mono环境
    ASP.NET MVC 4 简介
    添加控制器 Adding a Controller
    [转载]OrmHate
    [转载]张小龙谈移动互联网产品
    [转载]Golden Ratio in logo designs
  • 原文地址:https://www.cnblogs.com/keedor/p/4394375.html
Copyright © 2011-2022 走看看