一、DataNode

  1. 用于存储数据,注意数据是以Block形式存储
  2. 数据在DataNode上的存储位置由hadoop.tmp.dir属性决定,存储目录是dfs/data/current/块池/current/finalized/subdir0/subdir0
  3. DataNode会通过心跳机制(RPC方式)来向NameNode发送心跳信息

Hadoop的HDFS体系结构
Hadoop的DataNode及技术细节

二、SecondaryNameNode

  1. SecondaryNameNode只是辅助NameNode进行元数据的合并
  2. SecondaryNameNode能起到一定的备份作用,但是不能做到和NameNode之间进行实时热备 - 在实际开发中,一旦利用到SecondaryNameNode进行了备份,往往意味着数据已经产生了丢失
  3. 在HDFS中,最核心节点一定是NameNode,也因此在Hadoop2.0的完全分布式中,为了做到NameNode的热备,舍弃了SecondaryNameNode

三、复本放置策略

  1. 在HDFS中,默认是多复本策略,默认复本数量为3

  2. 复本放置策略:

    1. 第一个复本:如果是外部客户端上传数据,则此时NameNode会选择一个相对空闲的节点存放第一个复本;如果是内部上传,则第一个复本放在本节点上
    2. 第二个复本:在Hadoop2.7以前,第二个复本要放在和第一个复本不同机架的节点上;从Hadoop2.7开始,第二个复本放在和第一个复本相同机架的节点上
    3. 第三个复本:在Hadoop2.7以前,第三个复本是放在和第二个复本相同机架的节点上;从Hadoop2.7开始,第三个复本放在和第二个复本不同机架的节点上
    4. 更多复本:随机挑选空闲节点存放

四、机架感知策略

  1. 在Hadoop所指的机架并不是物理结构而是逻辑结构
  2. 可以通过映射关系来指定节点对应的机架,也就意味着同一个物理机架上的节点可以映射到不同的逻辑机架上
  3. 实际使用中,一般会将一个或者几个物理机架上的节点放在一个逻辑机架上

五、回收站机制

  1. 在HDFS中,回收站默认是不开启的,也就意味着一旦删除某个文件则这个文件会被立即移除
  2. 可以通过fs.trash.interval来指定在回收站中的停留时间

相关文章: