一、分布式文件系统
1.分布式文件系统解决问题:海量数据的高效存储
2.分布式文件系统是将文件分布存储到多个计算机节点上。(此处的计算机为普通计算机)
3.分布式文件系统的多个节点分为两类:
名称节点(主节点):文件、目录的操作(创建、删除、重命名等),数据节点与文件块的映射关系
数据节点(从节点):数据的读取与存储
二、HDFS概念
1.名称节点:管理分布式文件的命名空间。包含FsImage,Editlog两大核心数据结构
FsImage:维护文件系统树以及文件树中的文件和文件夹中的元数据
Editlog:记录所有针对文件的创建、删除、重命名操作
名称节点的数据结构
2.FsImage,Editlog两大数据结构工作过程:
名称节点启动—>FsImage的内容加载到内存—>执行EditLog中的操作(使内存中的数据源保持最新)—>创建新的FsImage+空 的EditLog
注:名称节点成功启动并进行正常运行后,HDFS的更新操作将被写入EditLog
名称节点在启动的过程中只允许读操作,不能写
3.第二名称节点
1.解决问题:Editlog文件逐渐变大
2.功能:完成FsImage和Editlog的合并,减小Editlog文件大小,缩短名称节点重启时间;名称节点的‘检查点’,保存名称节点元数据信息。
3.工作过程:
第二名称节点工作过程
三、HDFS存储原理
1.数据的冗余存储:
一个数据块的多个副本存储到不同的数据节点上(多副本方式进行冗余存储)
2.数据存储策略:包括数据存放,数据读取、数据复制
数据存放:HDFS 默认复制三分,两份副本放在同一个机架的不同机器,第三份副本放在不同的机架上
数据读取:数据节点所在机架ID 与客户端所属机架ID相同则读取该机架,否则随机
数据复制:流水线复制
3.数据错误与恢复
四、HDFS的数据读写
读:
写:
五、HDFS常用命令
hadoop dfs/fs -ls 当前目录下文件信息
hadoop dfs/fs -cat 标准输出
hadoop dfs/fs -mkdir 创建文件夹
hadoop dfs/fs -cp 复制
hadoop dfs/fs -put 本地文件系统复制到目标
hadoop dfs/fs -mv 移动
hadoop dfs/fs -rm -r 删除文件