美文网首页
HDFS 机架感知(Rack Awareness)

HDFS 机架感知(Rack Awareness)

作者: 学无止境_1993 | 来源:发表于2019-02-18 14:29 被阅读0次

什么是机架感知

设置机架感知的意义:

默认情况:

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

为什么要设置机架感知:

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

副本放置策略

默认副本放置策略:

在默认情况下副本数量是3个,所有的DN都是在同一个机架下,此时写block时,三个DN机器的选择是完全随机的。

  1. 写数据:HDFS是将不同的副本放置在不同的机架上,可以防止整个机架失效时数据的丢失,并且允许读数据的时候充分利用多个机架的带宽。这种策略设置可以将副本均匀地分配到集群中,有利于组织失效情况下的均衡负载。但是,因为这种策略的一个写操作需要传输数据块到多个机架,增加了写操作的成本。
  2. 读数据:在读数据时,为了减少整体的带宽和降低整体带宽延时,HDFS会尽量读取距离客户端最近的副本。如果程序和副本在同一个机架上优先读取该副本。如果跨多个数据中心,那么HDFS也将首先读取本地数据中心的副本。

配置机架后的副本放置策略:

配置机架感知后,HDFS在选择三个DN时,就会进行相应的判断:

  1. 如果上传本机不是一个DN,而是一个客户端,那么就从所有slave机器中随机选择一台DN作为第一个块的写入机器(DN1)。而此时如果上传机器本身就是一个DN,那么就将该DN本身作为第一个块写入机器。
  2. 随后在DN1所属的机架外的另外的机架上,随机的选择一台,作为第二个block的写入DN机器(DN2)
  3. 在写第三个block前,先判断前两个DN是否在同一个机架上,如果是在同一个机架,那么就尝试在另外一个机架上选择第三个DN作为写入机器(DN3)。而如果DN1和DN2没有在同一个机架上,则在DN2所在的机架上选择一台DN作为DN3。(hadoop fsck xx -files -blocks -locations -racks )
  4. 得到三个DN的列表后,从NN返回该列表到DFSClient之前,会在NN端首先根据该写入客户端跟DN列表中每个DN之间的距离由近到远进行一个排序,客户端根据这个顺序由近到远的进行数据块的写入。
  5. 根据距离排好序的DN节点列表返回给DFSClient后,DFSClient便会创建Block OutputStream,并向这次block写入pipeline中的第一个节点(最近的节点)开始写入block数据
  6. 写完第一个block后,依次按照DN列表中的次远的node进行写入,直到最后一个block写入成功,DFSClinet返回成功,该block写入操作结束。

Ambari设置机架感知

  1. 登陆Ambari控制台,选择Host选项,打开对应的Host详情
  2. 在Summary选项卡中设置具体的Rack信息
  3. 重启服务,集群会自动进行rebalance
  4. 通过hdfs dfsadmin -printTopology命令可以查看当前集群机架状态
  5. reblance结束后,Under Replicated Blocks指标为0,代表所有Block已经完成备份

原生Hadoop集群设置机架感知

相关文章

  • Hadoop 2.6.0 HDFS Rack Awareness

    Hadoop 2.6.0 HDFS Rack Awareness(机架感知)原理与配置步骤详解 前言:  多副本前...

  • HDFS 机架感知(Rack Awareness)

    什么是机架感知 设置机架感知的意义: 默认情况: 默认情况下HDFS没有开启机架感知,所有的机器默认都是在同一个机...

  • HDFS机架感知功能原理(rack awareness)

    HDFS NameNode对文件块复制相关所有事物负责,它周期性接受来自于DataNode的HeartBeat和B...

  • 04.HDFS拓展

    HDFS拓展 一、副本摆放策略 不同的版本副本拜访策略不同,主要是针对rack(机架)而选择的策略,机架之间通信的...

  • HDFS详解-02

    HDFS详解-02 1.机架 rack 问题: 2.副本放置策略 3.文件读流程 --> FSDataInputS...

  • hdfs详解之架构、SNN和副本放置策略

    1.HDFS架构 HDFS是一个主从架构。Rack代表机架一个机架一般是10台服务器,或者是5台带GPU的服务器。...

  • HDFS--机架感知

    君子生非异也,善假于物也。 Hadoop的设计目的:解决海量大文件的处理问题,主要指大数据的存储和计算问题,其中,...

  • Hadoop机架感知(rack-aware)配置

    副本的存放策略又是HDFS实现高可靠性和搞性能的关键,优化的副本存放策略也正是HDFS区分于其他大部分分布式文件系...

  • hadoop机架感知以及HDFS

    HDFS副本存放策略: 第一个副本,在客户端相同的节点(如果客户端是集群外的一台机器,就随机选节点,但是系统会避免...

  • hadoop cluster other config

    health check 在yarn-site.xml中配置 slaves rack awareness Logging

网友评论

      本文标题:HDFS 机架感知(Rack Awareness)

      本文链接:https://www.haomeiwen.com/subject/wleaeqtx.html