hadoop-HDFS概述

HDFS产生背景

  随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理。HDFS只是分布式文件管理系统中的一种;

HDFS是什么

  HDFS是基于java的分布式文件系统,允许您在hadoop集群中的多个节点上存储大量数据。它专门存储超大数据文件,为整个hadoop生态圈提供了基础的存储服务;

  HDFS的使用场景:适合一次写入,多次读出的场景,且不支持文件的修,改,适合使用做数据分析,并不适合用来做网盘应用;

  HDFS是一个主从体系架构,由于分布式存储的性质,集群拥有两类点NameNode和DataNode;

      hadoop-HDFS概述

    NameNode(nn):就是master,它是一个主管,管理者;

        1.管理HDFS的名称空间;

        2.配置副本策略;

        3.管理数据块(block)映射信息;

        4.处理客户端读写请求;

    DataNode(数据节点):就是slave,NameNode下达命令,DataNode执行实际操作;

        1.存储实际的数据块;

        2.执行数据库的读/写操作;

    Client:就是客户端

        1.文件切分。文件上传HDFS的时候,Client将文件切分成一个一个的block,然后进行上传;

        2.与NameNode交互,获取文件的位置信息;

        3.与DataNode交互,读取或者写入数据;

        4.Client提供一些命令来管理HDFS,比如N阿么Node格式化;

        5.Client可以通过一些命令来访问HDFS,比如对HDFS增删改查操作;

    Secondary NameNode:并非NAMENoel的热备。当NAMENoel挂掉的时候,它并不能马上体寒NameNode并提供服务;

        1.辅助NameNode,分担其工作量,比如定期合并Fsimage和Edits,并推送给NameNode;

        2.在紧急情况下,可复制恢复NameNode;

HDFS优点  

  高容错性:

    1.数据自动保存多个副本。它通过增加副本的形式,提供容错性;

    2.某一个副本丢失以后,它可以自动恢复;

  适合大数据处理:

    1.能够处理数据规模达到GB,TB,甚至PB级别的数据;

    2.能够处理百万规模以上的文件数量,数量相当之大;

  流式文件访问:一次性写入,多次读取,保证数据一致性;

  可构建在廉价机器上:通过多副本提供高可靠性,提供容错和恢复机制;

HDFS缺点

  不适合低延迟数据访问场景:比如毫秒级,低延迟与高吞吐率;

  不适合小文件存取场景:占用NameNode大量内存;

  不适合并发写入,文件随机修改场景:一个文件只能有一个写者;

HDFS文件块大小

  HDFS中的文件在物理上是分块存储(block),块的大小可以通过配置参数(dfs.blocksize)来规定,默认大小在hadoop2.x版本中是128M,老版本中是64M;

    hadoop-HDFS概述

   为什么块的大小不能设置大小,也不能设置太大?

    1.HDFS的快设置大小,会增加寻址时间,程序一直在找块的开始位置;

    2.如果块设置的太大,从磁盘传输的时间会明显大于定位这个块开始位置所需的时间。导致程序在处理这块数据时,会非常慢;

    总结:HDFS块的大小设置主要取决于磁盘传输速率;

相关推荐