zoukankan      html  css  js  c++  java
  • hadoop文件系统简介

    Hadoop文件系统简介

    Hadoop家族中,最重要的两部分内容就是MapReduce和HDFS,其中MapReduce是一种编程范型,这种范型比较适合用来在分布式环境下进行批处理计算。另一部分就是HDFS,即hadoop分布式文件系统。Hadoop环境下可以兼容多种文件系统,包括本地文件系统,体现在文件系统API层面上就是有一个文件系统接口,这个接口可以有多种实现,包括本地文件系统或者分布式文件系统等。

    一:HDFS的设计目标

     HDFS是用来将数据存储到多台计算机上(计算机集群)为主要设计目标的,它与传统的文件系统有许多不同之处。

    (1)首先,HDFS主要用来存储大文件,包括几百M,几百G,几百T大小的文件等,目前HDFS已经有可以用来支持PB级数据存储的Hadoop集群。

    (2)HDFS主要用来处理一次写入多次读取的操作,小部分的内容修改不是hadoop擅长的。

    (3)HDFS使用商用服务器来组成集群运行hdfs系统。因为没有使用昂贵的硬件,所以单点故障是不可避免的,因此HDFS需要有很强的容错性。即使在单点故障的情况下仍然可以正常运行。

    (4)HDFS是为实现高数据吞吐量来优化的,因此少量的数据要求快速访问并不适合。

    (5)HDFS使用主从架构,有一个负责管理整个系统的Name节点,这个节点保存整个文件系统的元数据。并且这些数据放到内存中方便快速读取,HDFS中每个文件都会保存相关的系统到Name节点的内存中,因此Name节点是整个系统可存放文件数目的瓶颈。可以使用联邦Name节点机制来扩展HDFS。也因为这个原因,HDFS中不适合存放大量小文件。

    (6)HDFS不允许多用户写入,而且写入数据也只是在文件末尾写入,不支持任意位置的写入。

    二:HDFS中的基本概念

    数据块

    1. 磁盘是存储文件的地方,文件系统是基于磁盘进行构建的。磁盘有数据块的概念,数据块是磁盘进行数据读/写的基本单位。磁盘数据块的大小一般为512字节,文件系统中也有数据块的概念,文件系统的数据块大小一般为磁盘数据块大小的整数倍,一般为几千字节。

    2. hdfs中也有块的概念,与普通的文件系统一样,hdfs也会将一个文件分成块大小的多个块(chunk),作为独立的存储单元。hdfs中的块很大,默认为64MB。另外,hdfs中小于块大小的文件不会占据整个块的空间。将块设置的如此大的原因是为了最小化寻址时间,使数据请求中传输磁盘数据的时间远大于寻址时间(找到文件块的开始位置)。

    3. 使用数据块概念的好处:一个文件大小可以超过网络中任意一个磁盘的大小,可以简化子系统的设计(将数据块与元数据分开),分块可以便于数据备份提高容错能力。

    namenode与datanode

    1. hdfs以master-slaver模式工作,其中有一个namenode作为主节点,slaver作为从节点。namenode负责管理整个文件系统的命名空间,它是通过在本地磁盘保存两个文件来实现的,分别是命名空间镜像文件和编辑日志文件。namenode保存文件块的相关信息,但不永久保存。因为这些信息会在datanode启动时重建。

    2. datanode节点是文件系统的工作节点,存储并且检索数据块,并且定期向namenode发送所存储的块的列表。

    3. namenode容错机制,一种是备份组成文件系统元数据持久状态的文件,另一种是运行一个辅助namenode。

    4. 联邦hdfs,因为当文件系统中的文件数目巨大时,namenode需要将元数据信息存放到内存中,此时内存成为文件系统的瓶颈,可以利用联邦hdfs机制,使用多个namenode来管理文件系统的元数据,每个namenode管理文件系统中的一部分元数据。

  • 相关阅读:
    Leetcode 1489找到最小生成树李关键边和伪关键边
    Leetcode 113 路径总和 II
    hdu 1223 还是畅通工程
    hdu 1087 Super Jumping! Jumping! Jumping!
    hdu 1008 Elevator
    hdu 1037 Keep on Truckin'
    湖工oj 1241 畅通工程
    湖工oj 1162 大武汉局域网
    hdu 2057 A + B Again
    poj 2236 Wireless Network
  • 原文地址:https://www.cnblogs.com/libs5510/p/4941754.html
Copyright © 2011-2022 走看看