HDFS的详解(一)

      1. 三个进程
        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不太忙的节点上;

第二副本: 放置在于第一个副本不同的机
架的节点上;
第三副本: 与第二个副本相同机架的不同
节点上;

如果还有更多的副本:随机放在节 点中;



请使用浏览器的分享功能分享到微信等