zoukankan      html  css  js  c++  java
  • HDFS 概述

    定义

    HDFS(Hadoop Distributed File System)是分布式文件管理系统中的一种,用来管理多台机器上的文件,通过目录树来定位文件。
    由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。
    适合一次写入,多次读取,且不支持文件的修改。适合用来做数据分析,不适合用来做网盘应用。

    优缺点

    优点:
    1.高容错性 数据自动保存多个副本。通过增加副本的形式,提高容错性
    某一个副本丢失以后,可以自动恢复
    2.适合处理大数据。
    3.可运行在廉价机器上,通过多副本机制,提高可靠性。
    缺点:
    1.无法低延时访问数据,如毫秒级的存储数据。
    2.无法高效的对大量小文件进行存储。 大量小文件会占用 NameNode 大量的内存来存储文件目录信息和块信息 小文件的寻址时间会超过读取时间
    3.无法并发写入和文件随机修改。 HDFS上一个文件只能有一个线程写,不允许多个线程同时写 HDFS上的文件仅支持数据append(追加),不支持文件的随机修改

    HDFS 组成

    HDFS 为 主(Master) / 从(Slave) 架构:一个 NameNode,多个 DataNode(通常是群集中每个节点一个)
    
    NameNode:管理文件系统命名空间(打开、关闭、重命名文件和目录,还确定了文件块在那个 DataNode 上的路径),管理客户端对文件的访问,配置副本策略(复制因子,可为某个文件单独设置),记录对文件系统命名空间或其属性的任何更改
    
    DataNode:存储文件块(负责提供来自文件系统客户端的读写请求,还根据 NameNode 的指令执行块创建、删除和复制),上传至 HDFS 的文件在内部被分成一个或多个块,这些块存储在一组 DataNode 中

    Client:
    HDFS 客户端
    1.文件切分。文件上传HDFS的时候,Client将文件切分成一个一个的Block,然后进行上传
    2.与NameNode交互,获取文件的位置信息
    3.与DataNode交互,读取或者写入数据
    4.Client提供一些命令来管理HDFS,比如NameNode格式化
    5.Client可以通过一些命令来访问HDFS,比如对HDFS增删查改操作
    
    Secondary NameNode:
    并非NameNode的热备。当NameNode挂掉的时候,它并不能马上替换NameNode并提供服务
    1.辅助NameNode,分担其工作量,比如定期合并Fsimage和Edits,并推送给NameNode
    2.在紧急情兄下,可辅助恢复NameNode

    HDFS 文件块大小设置

    HDFS 中的文件在物理磁盘上是分块存储(Block),块的大小可以通过配置参数(dfs.blocksize)来设置
    默认大小在Hadoop2.x版本中是128M,1.x中是64M,本地模式中是32M
    
    
    寻址(查找Block位置)时间为传输时间的 1% 时,则为最佳状态。
    目前磁盘的传输速率普遍为 100MB/s
    
    假设 HDFS 寻址时间为 0.01 秒,那最佳块大小为:0.01 / 1% * 100M = 100M,实际有些偏差,所以 100M/s 的磁盘最佳为 128M
    
    
    块的大小不能设置太小,也不能设置太大
    1.块设置太小,会增加寻址时间,程序一直在找块的开始位置
    2.块设置太大,从磁盘传输数据的时间会明显大于定位这个块开始位置所需的时间。导致程序在处理这块数居时,会非常慢
    
    HDFS 块的大小设置主要取决于磁盘传输速率

    https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html

    https://blog.csdn.net/pear_zi/article/details/8082752

    https://www.cnblogs.com/Dhouse/p/6901028.html

  • 相关阅读:
    五、MapReduce 发布服务
    四、MapReduce 基础
    三、Hadoop 的 API
    二、HDFS 架构
    php身份证号的验证
    php性能优化
    PHP网站开发方案
    php一个不错的分页
    2013年最流行的php框架盘点
    程序员之路
  • 原文地址:https://www.cnblogs.com/jhxxb/p/10680794.html
Copyright © 2011-2022 走看看