文件系统是一种存储和组织数据的方法,实现了数据的存储、分级组织、访问和获取等操作。
文件系统使用树形目录的抽象逻辑概念代替了硬盘等物理设备使用数据块的概念。
数据:指存储的内容本身。这些数据底层是存储在存储介质上的,用户只需要基于目录树进行增删改查即可,实际针对数据的操作由文件系统完成。
元数据(解释性数据):记录数据的数据。
文件系统元数据:指文件大小、最后修改时间、底层存储位置、底层存储位置、属性、所属用户、权限等信息。
单机纵向扩展:磁盘不够加磁盘,有上限瓶颈限制
多机横向扩展:机器不够加机器,理论上无限扩展
元数据记录下文件及其存储位置信息,快速定位文件位置
文件分块存储在不同机器,针对块并行操作提高效率
不同机器设置备份,冗余存储,保障数据安全
HDFS:Hadoop分布式文件系统。
HDFS具有故障检测和自动快速恢复。
HDFS用于批处理,而不是用户交互式的。(相较于数据访问的反应时间,更注重数据访问的高吞吐量。)
HDFS支持大文件,提供很高的聚合数据带宽。
write-one-read-many
访问模型,文件不允许修改。简化了数据一致性问题,提高数据吞吐量。
移动计算的代价比之移动数据的代价低。一个应用请求的计算,离它操作的数据越近就越高效。将计算移动到数据附近,比之将数据移动到应用所在显然更好。
HDFS可从一个平台轻松移植到另一个平台。
HDFS集群是标准的master/slave主从架构集群。
HDFS集群是有一个Namenode和一定数目的Datanode组成。
Namenode是HDFS主节点,Datanode是HDFS从节点,两种角色各司其职,共同协调完成分布式的文件存储服务。
HDFS中的文件在物理上是分块存储的,默认大小是128M ,不足128M则本身就是一块。
文件的所有block都会有副本。副本系数可以在文件创建的时候指定,也可以在之后通过命令改变。
副本数由参数
dfs.replication
控制,默认值是3,也就是会额外再复制2份 ,连同本身总共3份。
1、文件自身属性信息:文件名称 权限,修改时间,文件大小,复制因子,数据块大小。
2、文件块位置映射信息:记录文件块和DataNode之间的映射信息,即哪个块位于哪个节点上。
HDFS支持传统的层次型文件组织结构。
Namenode负责维护文件系统的namespace名称空间 ,任何对文件系统名称空间或属性的修改都将被Namenode记录下来。
HDFS会给客户端提供一个统一的抽象目录树