HDFS基础 (一) 概述
一、HDFS概述
HDFS是分布式文件管理系统。
应用场景:适合一次写入,多次读出的场景,且不支持文件的修改。适合用于数据分析
二、HDFS组成架构

HDFS由单个namenode和多个datanode组成。
NameNode(nn):Master——主管、管理者
作用:1)管理HDFS命名空间; 2)配置副本策略;3)管理数据块(block)映射信息;4)处理客户端读写请求。
DataNode:Slave——数据节点
作用:1)存储实际的数据库;2)执行数据库的读/写操作。(NameNode下达命令,DataNode执行实际的操作)。
Client:客户端
作用:1)文件切分。文件上传HDFS的时候,Client将文件切分成一个一个的Block,然后进行上传;
2)与NameNode交互,获取文件的位置信息;
3)与DateNode交互,读取或者写入数据;
4)Client提供一些命令来管理HDFS,比如:NameNode的格式;
5)Client通过一些命令来访问HDFS,比如对HDFS增删改查操作;
SecondaryNameNode:并不是NameNode的热备,NameNode挂掉时,并不能马上替换NameNode并提供服务。
作用:1)辅助NameNode,分担其工作量;
2)在紧急情况下,可以辅助恢复NameNode;
三、HDFS文件块大小
1、HDFS文件在物理上是分块存储(Block),块的大小可以通过配置参数(dfs.blocksize)来配置,默认大小是128M;
2、如果寻址时间是10ms,即查找目标block的时间为10ms
3、寻址时间为传输时间的1%时,则为最佳状态。即传输时间=10/0.1ms=1m
思考:为什么块的大小不能设置太小,也不能设置太大?
1)设置太小会增加寻址时间,程序一直在找块的开始位置
2)设置太大,从磁盘传输数据的时间会明显大于定位这个块位置所需的时间,导致程序在处理这块数据时,非常慢
总结:HDFS块大小设置主要取决于磁盘的传输速率
浙公网安备 33010602011771号