vlambda博客
学习文章列表

HDFS块的存储策略

一、HDFS block数据块
block数据块是HDFS文件系统的基本存储单位,默认大小64M(Hadoop2.0版本以下),很多情况下HDFS使用128MB的块设置,比磁盘的块大很多(差不多4K大小)。
block数据块设置较大原因归结三点:
1)减少文件寻址时间
2)减少管理块的数据开销,每个块都需要在NameNode上有相应记录
3)对数据块进行读写,减少建立网络的连接成本

二、默认存储策略:

  1. 默认情况下HDFS没有开启机架感知,所有的机器默认都是在同一个机架下,名为:/default-rack
  2. HDFS不能够自动判断集群中各个datanode的网络拓扑情况,HDFS写入block是随机的

三、机架感知
  • 开启机架感知,NN可以知道DN所处的网络位置,
  • 根据网络拓扑图可以计算出rackid,通过rackid信息可以计算出任意两台DN之间的距离
  • 在HDFS写入block时,会根据距离,调整副本放置策略
  • 写入策略会将副本写入到不同的机架上,防止某一机架挂掉,副本丢失的情况。同时可以降低在读取时候的网络I/O。但是会增加写操作的成本。
  • 第二份和第一份在同一机架,第三份和前两份不在同一机架