日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

分布式系统中Topology(Rack) Awareness的实现思路

發(fā)布時(shí)間:2023/12/16 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 分布式系统中Topology(Rack) Awareness的实现思路 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

  • 前言
  • 為何要考慮Topology Awareness
  • Topology Awareness的一般實(shí)現(xiàn)思路
    • Step1: Node Location賦予
    • Step2: Topology的結(jié)構(gòu)組織和距離計(jì)算
    • Step3: 最近節(jié)點(diǎn)的選擇
  • 引用

前言


在分布式系統(tǒng)中,尤其是存儲(chǔ)系統(tǒng)中,我們經(jīng)常會(huì)看到類似“系統(tǒng)返回一個(gè)最近的數(shù)據(jù)”這樣的句子”。當(dāng)我們談到一個(gè)數(shù)據(jù)“遠(yuǎn)近”的問(wèn)題時(shí),你可以說(shuō)這是在談數(shù)據(jù)locality的問(wèn)題,但從更宏觀的角度來(lái)看這個(gè)問(wèn)題,它其實(shí)談的是Topology Awareness(拓?fù)浼軜?gòu)感知)的事情。本文筆者來(lái)簡(jiǎn)單聊聊這個(gè)話題,其實(shí)我們平時(shí)更多的是用另一個(gè)詞–Rack-Awareness(機(jī)架感知)來(lái)指代這個(gè)問(wèn)題。

為何要考慮Topology Awareness


其實(shí)在小規(guī)模,小體量集群環(huán)境中,是確實(shí)可以不用考慮拓?fù)浣Y(jié)構(gòu)感知的問(wèn)題的。這里的結(jié)構(gòu)可理解為是它的網(wǎng)絡(luò)結(jié)構(gòu)(/data center/rack/node)。但是當(dāng)集群規(guī)模變大,甚至有了不同的數(shù)據(jù)中心,機(jī)房時(shí),這里面就要考慮網(wǎng)絡(luò)數(shù)據(jù)通信的問(wèn)題。也就是我們需要開(kāi)始重視這里面的網(wǎng)絡(luò)結(jié)構(gòu)的問(wèn)題,總不能每天把機(jī)房帶寬打滿吧?;驹瓌t是優(yōu)先訪問(wèn)本地(可以同節(jié)點(diǎn),rack,datacener)數(shù)據(jù),盡可能避免遠(yuǎn)程數(shù)據(jù)傳輸。所以Topology Awareness要解決的就是這樣的一個(gè)問(wèn)題,避免的是一個(gè)resource消耗的問(wèn)題。

Topology Awareness的一般實(shí)現(xiàn)思路


結(jié)合HDFS內(nèi)部的NetworkTopology實(shí)現(xiàn)以及最近Ozone的Topology Awareness設(shè)計(jì)實(shí)現(xiàn),筆者來(lái)簡(jiǎn)單概括下其中的設(shè)計(jì)思想,還是有很多通用的地方可以借鑒借鑒的。

Step1: Node Location賦予


節(jié)點(diǎn)的拓?fù)浣Y(jié)構(gòu)位置賦予是Topology Awareness的一個(gè)初始前提。一般情況下,我們會(huì)將節(jié)點(diǎn)實(shí)際的網(wǎng)絡(luò)位置情況作為它的實(shí)際位置值,比如如下:

/data-center/rack/node

或者說(shuō)有時(shí)我們還要在node前多加一層(比如交換機(jī)),

/data-center/rack/switch/node

每多一層級(jí),相當(dāng)于這個(gè)路徑深度又深了一層。這其實(shí)是一個(gè)樹(shù)結(jié)構(gòu),最后的節(jié)點(diǎn)為葉子節(jié)點(diǎn),然后中間的節(jié)點(diǎn)更多的是一個(gè)邏輯上的角色節(jié)點(diǎn)。

當(dāng)然,我們也可以手動(dòng)賦值邏輯位置,不依賴于物理實(shí)際網(wǎng)絡(luò)位置。通過(guò)外部腳本提供這層位置關(guān)系,目前Hadoop內(nèi)部已經(jīng)支持這個(gè)功能。

Step2: Topology的結(jié)構(gòu)組織和距離計(jì)算


在上文已經(jīng)提到過(guò),整個(gè)Topology結(jié)構(gòu)是一個(gè)樹(shù)型結(jié)構(gòu),通過(guò)中間節(jié)點(diǎn)進(jìn)行組織串聯(lián)。在這個(gè)大型的樹(shù)結(jié)構(gòu)中,一般我們會(huì)分為兩類節(jié)點(diǎn):

  • 葉子節(jié)點(diǎn),實(shí)際物理節(jié)點(diǎn)
  • 非葉子節(jié)點(diǎn),包括樹(shù)的根節(jié)點(diǎn)和所有中間節(jié)點(diǎn)都為此類型節(jié)點(diǎn)

然后這些節(jié)點(diǎn)會(huì)有一些公共屬性:

  • 孩子節(jié)點(diǎn)信息
  • 位置信息
  • 距離開(kāi)銷,指當(dāng)前節(jié)點(diǎn)和其下孩子節(jié)點(diǎn)的“距離”

上面的距離開(kāi)銷屬性值在后面計(jì)算最近節(jié)點(diǎn)時(shí)會(huì)起到關(guān)鍵的作用,我們可以用距離單元來(lái)對(duì)此賦值。

我們以下面一個(gè)例子來(lái)解釋距離的開(kāi)銷的含義:

上圖中直線中數(shù)字即距離開(kāi)銷,越往上,距離值越大實(shí)際意為網(wǎng)絡(luò)傳輸開(kāi)銷越大。上圖中比如node1和node2之間的距離為1+1=2,計(jì)算方式為2個(gè)節(jié)點(diǎn)遞歸往上找,找到最近公共祖先,然后計(jì)算這之間的距離開(kāi)銷和,即為2個(gè)節(jié)點(diǎn)間的距離值。

有了以上的結(jié)構(gòu)組織方式和距離計(jì)算方式,節(jié)點(diǎn)間的數(shù)據(jù)本地性通信將會(huì)大大得到提升。同一機(jī)房?jī)?yōu)先于跨機(jī)房通信,同機(jī)房?jī)?nèi),同機(jī)架優(yōu)先于跨機(jī)架的。

Topology結(jié)構(gòu)的自定義組織
以上的結(jié)構(gòu)定義還能夠?qū)崿F(xiàn)得更為靈活,可用。我們完全可以在上面node節(jié)點(diǎn)前在加一層nodegroup層,然后也賦予一個(gè)距離值,如下圖:

這其實(shí)就是我們對(duì)整個(gè)Topology的整體結(jié)構(gòu)設(shè)計(jì)了。這可以作為一個(gè)topology的配置屬性,由用戶進(jìn)行設(shè)置,包括以下幾要素:

  • 節(jié)點(diǎn)類型
  • 所在樹(shù)的深度
  • 距離開(kāi)銷值

Step3: 最近節(jié)點(diǎn)的選擇


當(dāng)我們把整個(gè)Topology都完善好之后,那么我們?nèi)绾蝸?lái)選擇“最近”節(jié)點(diǎn)呢?這里的最近節(jié)點(diǎn)其實(shí)就是距離開(kāi)銷和最小的節(jié)點(diǎn),物理意義即數(shù)據(jù)本地性更優(yōu)先的節(jié)點(diǎn)。

一個(gè)能夠想到的簡(jiǎn)單粗暴的辦法,獲取當(dāng)前請(qǐng)求節(jié)點(diǎn)位置,然后和集群內(nèi)的所有節(jié)點(diǎn)進(jìn)行一個(gè)距離計(jì)算,然后按照距離值升序排列,選取第一個(gè)距離最短的。然后進(jìn)行數(shù)據(jù)的讀或者寫(xiě)。

以上這種方法雖說(shuō)可行,但是效率并一定是最高的。在Hadoop中,它的做法是通過(guò)引入一個(gè)scope值來(lái)限定候選節(jié)點(diǎn)。候選節(jié)點(diǎn)必須是此scope范圍內(nèi)的,判斷方法是通過(guò)位置前綴匹配是否符合。當(dāng)然,也可以反著用,帶上字符“~”前綴即是exclude排斥的意思。

以上內(nèi)容來(lái)自于Hadoop內(nèi)的Topology Awareness的實(shí)現(xiàn)思路,詳細(xì)細(xì)節(jié)可參考下文鏈接地址。

引用


[1].https://docs.google.com/document/d/1HsZqlBcEmlezU6HriUaIOFE9SFdcBoaiz15Qt_ng0P8/edit

總結(jié)

以上是生活随笔為你收集整理的分布式系统中Topology(Rack) Awareness的实现思路的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。