- HDFS概念及作用:HDFS是一个分布式文件式系统。用于存储海量数据,可以存储多种格式文件。
- HDFS1.0由3个组件组成,分别是:nameNode,secondaryNameNode,dataNode。
- 整个hdfs集群里面有三种角色:主节点、从节点、客户端。
- hdfs储存的单元是block,一个block的大小是64M。
- 默认一个文件会保存3份。
- dataNode主动通过“心跳”,向nameNode汇报自己的空闲状态。
- nameNode的职责:
- 负责客户端的响应。
- 元数据的管理。
- nameNode的元信息持久化: 在nameNode中存放元信息的文件式fsimage。在系统运行期间所有对源信息的操作都保存在内存中并持久化到另一个文件edits中。并且edits文件和fsimage文件会被secondaryNameNode周期性合并。
- hdfs致命的缺点:nameNode的点单问题。
- dataNode的职责:
- 负责存储数据块,负责为哭护短提供数据块的读写任务。
- 根据nameNode的指示进行创建、删除和复制等操作。
- 心跳机制,定期报告文件块列表信息。
- dataNode之间进行通信,块的副本处理。
- secondaryNameNode:命名不好,secondaryNameNode并不是nameNode的备份。
- secondaryNameNode的职责:
- 定时到nameNode去获取edit logs,并更新到fsimage。
- 一旦它有了新的fsimage文件,它将其拷贝回nameNode中。(注:secondaryNameNode和nameNode内都有fsimage)
- nameNode在下次重启时回使用这个新的fsimage文件,从而减少重启时间。
- 两个备份文件的作用:
- fsimage:它是在nameNode启动时对整个文件系统的快照。
- edits logs:它是在nameNode启动后,对文件系统的更改进行记录。
- 数据完整性校验的两种校验方法:
- 校验和:client通过crc32,在每512个字节创建一个校验码,当校验通过后,dataNode再向block保存数据。
- 数据块检测程序DataBlockSCanner:在dataNode节点上开启一个后台栈程,来定期验证存储在它上所有块,这个是防止物理介质出现损减情况而造成数据损失。
- hdfs常用命令
- 查看文件 hadoop fs -ls 文件目录
- 上传文件 hadoop fs -put 上传文件 hdfs位置+文件名称
- 删除文件 hadoop fs -rmr 文件目录
- 修改权限(级联) hadoop fs -chmod -r 文件目录