HDFS

编程

    Hadoop分布式文件系统(HDFS)是指被设计成适合运行在通用硬件(Commodity Hardware)上的分布式文件系统(Distributed File System)。

【操作系统中负责管理和存储文件信息的软件机构称为文件管理系统

起源

    HDFS在最开始是作为Apache Nutch搜索引擎项目的基础架构而开发的。HDFS是Apache Hadoop Core项目的一部分。

优点

  • 高容错性(fault-tolerant)【数据自动保存多个副本】
  • 可以部署在低廉的机器上
  • 提供高吞吐量,适合处理大数据【大数据规模,单文件规模】

缺点

  • 不适合低延迟数据访问(指毫秒级别的存储)
  • 无法高效的对大量小文件进行存储
  • 不支持并发写入,文件随机修改

组成结构

​​​​​​​(1)NameNode(nn):就是master,作为管理者

            a.管理hdfs的名称空间

            b.配置副本策略

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

            d.处理客户请求

    (2)DataNode(dn):就是slave,NameNode下发命令,由DateNode去执行操作

            a.存储实际的数据块

            b.执行数据块的读/写操作

    (3)Client:客户端

            a.文件切分,上传时,client会将文件切成一个一个的数据块(block),在进行上传

            b.与NameNode交互,获取文件的位置

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

            d.client提供一些命令来管理HDFS,比如NameNode格式化

            e.client提供一些命令来访问HDFS,比如hdfs文件增删查改

    (4)Secondary NameNode:辅助NameNode监控,备份快照

文件块大小

    HDFS中文件是在物理上的分块存储,块的大小是可以配置dfs.blocksize去修改,默认2.x版本是128MB,老版本是64Mb

怎样设置块大小?要大一点还是小一点?

    (1)块太小,会增加寻找时间,程序一直在找块位置

    (2)块太大,会导致传输到硬件的时间变长

    总的来说:HDFS块的大小主要取决于硬件的传输s"d

 

 

以上是 HDFS 的全部内容, 来源链接: utcz.com/z/516411.html

回到顶部