Hadoop与网络拓扑

在本地网络中,两个节点被称为“彼此近邻”是什么意思?在海量数据处理中,其主要限制因素是节点之间数据的传输速率——带宽很稀缺。这里的想法是将两个节点间的带宽作为距离的衡量标准。

不用衡量节点之间的带宽,实际上很难实现(它需要有一个稳定的集群,并且在集群中两两节点对数量是节点数量的平方),Hadoop为此采用一个简单的方法:把网络看做一棵树,两个节点间的距离是他们到最近共同祖先的距离总和,该树中的层次是没有预先设定的,但是相对于数据中心、机架和正在运行的节点,通常可以设定等级。具体想法是针对以下每个场景,可用带宽依次递减:

  • 同一节点上的进程
  • 同一机架上的不同节点
  • 同一数据中心不同机架的节点
  • 不同数据中心的节点

例如,假设有数据中心 d1 机架 r1 中的节点 n1 该节点可以表示为 /d1/r1/n1。利用这种标记,这里给出四种距离描述:

  • distance(/d1/r1/n1,/d1/r1/n1) = 0 表示同一节点上的进程
  • distance(/d1/r1/n1,/d1/r1/n1) = 2 表示同一机架上的不同节点
  • distance(/d1/r1/n1,/d1/r1/n1) = 4 表示同一数据中心不同机架上的节点
  • distance(/d1/r1/n1,/d1/r1/n1) = 6 表示不同数据中心上的节点

最后我们必须意识到Hadoop无法自动发现网络拓扑结构。它需要我们来配置网络拓扑。不过在默认情况下,加入网络是扁平化的只有一层,或换句话说,所有节点都在同一数据中心的同一机架上。规模小的集群可能如此,不需要进一步配置。

 

Hadoop与网络拓扑_第1张图片

你可能感兴趣的:(Hadoop)