HDFS架构原则分析

本文详细介绍了HDFS架构中的元数据与数据分离原则,以及主从(master/salve)架构。重点讲解了文件切分算法和hosts算法,强调了移动计算比移动数据更划算的设计理念,以提高计算效率和系统吞吐量。
摘要由CSDN通过智能技术生成

1、元数据与数据分离

                在HDFS 中存放数据时,文件本身的属性是存放在NameNode节点上,而文件所持有的数据是存放在DataNode节点上,这样可以对大量的数据进行一个统一的管理

2、master/salve架构(主从架构)

                一个HDFS集群由一个NameNode节点和一定数目的DataNode节点组成

3、移动计算比移动数据更划算

                这就涉及到hosts算法(即主机选择算法),文件是按照数据块的类型存储的,对数据进行处理时,是按照逻辑Split(片)的形式读取,首先说下文件切分算法(即文件是如何进行逻辑上的分片)

            (1)文件切分算法                 

                  为了减少网络开销提高计算效率,一般将逻辑片的大小设定为和数据块的大小一致,这样就避免了数据的跨块读取,首先,将定义的最大值(即maxsize)和数据块的大小(blocksize)做对比,选取出最小值,再将该值与minsize(片的最小值,默认为1,可以通过配置参数mapred.min.split.size来进行设置)做对比,选取出最大值作为我们逻辑片的大小

                  这样就保证了当我们的文件大小大于数据块的大小,此时的逻辑片的大小就与数据块的大小一致,当文件的大小小于数据块的大小,逻辑片的大小就与文件的大小一致,以此来提高运算效率

                原码分析:





             (2)hosts算法                 

                  分片完成后,就开始hosts算法,确定每一个逻辑片的元数据,一般包括四部分<file,start,length,hosts>

                                    file----------表示逻辑片存放在那些文件中

                                    start--------表示逻辑片在文件中的起始位置

                                    length------表示逻辑片的长度

                                    hosts-------文件所在的节点信息

                    host选择遵循本地性,即将算法调度到要处理的数据所在的节点上,因为我们的数据并不是存放在一个节点上,我们需要从其它节点上读取信息,这就涉及到网络传输,为了减少网络开销,我们会选择存储数据最多的节点,将算法调度到该节点上,这样处理数据时就是以本地的模式进行,会提高运算效率,将其他存储少量信息的节点通过网络传输将数据传输过来,这样就能减少带宽,提高系统的吞吐量,因而说移动计算比移动数据更划算。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值