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