-
三个进程
1)NameNode (NN): 名称节点 --》client第一个操作的对象NameNode的功能: 文件系统的命名空间
1.文件名称
2.文件目录结构
3.文件的属性(权限 创建时间 副本数)
4.文件对应哪些数据块--》这些数据块对应哪些DataNode节点上,不会持久化存储这个映射关系,通过集群的启动和运行时,datanode定期发送blockReport给NN,以此NN在【内存】中动态维护这种映射关系。
存储: 维护文件系统树及整个树内的所有文件和目录,这些信息以两种文件形式永久保存在本地磁盘上,命名空间镜像文件fsimage+编辑日志editlog
2)DataNode (DN): 数据节点 --》存储数据的DataNode的作用:
1.每隔3秒发送一次心跳 参数可配置 (默认)
2.每隔10次心跳发送一次blockReport (30s)(默认)存储: 数据块+数据块校验,和与NN通信
3)Secondary NameNode(SNN): 第二名称节点Secondary NameNode的作用:
定期合并fsimage+editlog文件为新的fsimage,推送给NN,称为检查点,checkpoint
存储: 命名空间镜像文件fsimage+编辑日志editlog
参数:fs.checkpoint.period-->1h fs.checkpoint.size -->64M
2.block(数据块)
大小: 64M 128M(目前2.x中默认)
参数: dfs.blocksize
3.副本数
dfs.replication : 3 一个块会变为3个块
案例
1个文件130M : 128M 2M 两个块 默认块大小为128M 实际存储: 130M*3 多少个块: 6
4.
副本放置策略
第一副本: 放置在上传文件的DataNode上;
如果是集群外提交,则随机挑选一台磁盘
不太慢、 CPU不太忙的节点上;
第二副本: 放置在于第一个副本不同的机
架的节点上;
第三副本: 与第二个副本相同机架的不同
节点上;
如果还有更多的副本:随机放在节
点中;