HDFS01 概述

HDFS 概述

image

HDFS的产生背景和定义

HDFS产生背景

解决海量数据的存储问题

需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统。HDFS 只是分布式文件管理系统中的一种。

HDFS定义

HDFS(Hadoop Distributed File System),它是一个文件系统,用于存储文件,通过目录树来定位文件;其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。

HDFS 的使用场景:适合一次写入,多次读出的场景。 一个文件经过创建、写入和关闭之后就不需要改变。

优缺点

优点

1.高容错性

image

2.适合处理大数据

image

3.可以构建在廉价机器上,通过多副本机制,提高可靠性

缺点

1.不适合低延时数据访问,比如毫米级的存储数据

2.无法高效的对大量小文件进行存储,适用于快速寻找

image

寻址时间为传输时间的1%时,为最佳状态

3.不支持并发写入、文件随机修改
image

组成

image

NameNode

NameNode(nn)是Master,管理者。

  1. 管理HDFS的名称空间
    所有文件的元数据
  2. 配置副本策略
    比如集群中有多个文件a,b,c,设置a的副本有1个、b的副本有2个、c的副本有3个。告诉Datanode维持几份副本
  3. 管理数据块(Block)的映射信息
  4. 处理客服端读写请求

DataNode

NameNode下达命令,DataNode执行实际的操作。

  1. 存储实际的数据块
  2. 执行数据块的读/写操作

Secondary NameNode(2nn)

并非NameNode的热备。当NameNode挂掉的时候,它并不能马上替换NameNode并提供服务

  1. 辅助NameNode,分担其工作量,比如定期合并Fsimage(镜像文件)和Edits(编辑日志),并推送给NameNode
  2. 在紧急情况下,可辅助恢复NameNode(只能恢复部分,因为2nn并没有NameNode的全部数据)

Client

Client就是客户端

  1. 文件切分。文件上传HDFS的时候,Client将文件切分成一个个block(按NameNode的文件块来分)
  2. 与NameNode交互,获取文件的位置信息
  3. 与DataNode交互,读取或者写入数据
  4. Client提供一些命令来管理HDFS,比如NameNode格式化
  5. Client可以通过一些命令来访问HDFS,比如对HDFS增删查改操作

文件块大小(面试重点)

HDFS中的文件在物理上是分块存储(Block),块的大小可以通过配置参数dfs.blocksize来设置,默认大小在Hadoop2.x/3.x版本中是128M。
128M是上限,如果10K的文件存进去,剩下的空间还可以给其他文件使用。

默认值128M的原因,如果磁盘的传输速率更大,块的大小可以设置的更大

image

问题:为什么块的大小不能设置太小,也不能设置太大

如果块设置太小,会增加寻址时间。
如果块设置太大,从磁盘传输数据的时间会明显大于定位这个块开始位置所需时间。导致磁盘传输数据的时间过长。
总结:HDFS块的大小设置主要取决于磁盘传输速率。

posted @ 2021-06-29 17:09  rananie  阅读(59)  评论(0编辑  收藏  举报