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上,并把映射信息记录下来

       

       

       

       

  • 相关阅读:
    Python Day 10 函数、函数作用、组成部分、返回值return作用
    SSM三大框架整合详细教程(Spring+SpringMVC+MyBatis
    深入理解HTTP Session
    JSP中两种include的区别
    Spring MVC控制层传递对象后在JSP页面中的取值方法
    Servlet和Filter的url匹配以及url-pattern详解 及 filter 循环问题的解决
    SSH:Action中Service无法实例化
    java实现邮箱找密码
    登陆界面验证码实现
    css 行内元素 块元素 替换元素 非替换元素 以及这些元素的width height margin padding 特性
  • 原文地址:https://www.cnblogs.com/keedor/p/4394375.html
Copyright © 2011-2022 走看看