1、元数据与数据分离
在HDFS 中存放数据时,文件本身的属性是存放在NameNode节点上,而文件所持有的数据是存放在DataNode节点上,这样可以对大量的数据进行一个统一的管理
2、master/salve架构(主从架构)
一个HDFS集群由一个NameNode节点和一定数目的DataNode节点组成
3、移动计算比移动数据更划算
这就涉及到hosts算法(即主机选择算法),文件是按照数据块的类型存储的,对数据进行处理时,是按照逻辑Split(片)的形式读取,首先说下文件切分算法(即文件是如何进行逻辑上的分片)
(1)文件切分算法
为了减少网络开销提高计算效率,一般将逻辑片的大小设定为和数据块的大小一致,这样就避免了数据的跨块读取,首先,将定义的最大值(即maxsize)和数据块的大小(blocksize)做对比,选取出最小值,再将该值与minsize(片的最小值,默认为1,可以通过配置参数mapred.min.split.size来进行设置)做对比,选取出最大值作为我们逻辑片的大小
这样就保证了当我们的文件大小大于数据块的大小,此时的逻辑片的大小就与数据块的大小一致,当文件的大小小于数据块的大小,逻辑片的大小就与文件的大小一致,以此来提高运算效率<