【Druid】Coordinator Node

Druid協(xié)調(diào)節(jié)點(diǎn)主要負(fù)責(zé)segment的管理和分配梁钾,它基于配置信息通知?dú)v史節(jié)點(diǎn)加載和刪除segments旦装。具體來(lái)說(shuō),協(xié)調(diào)節(jié)點(diǎn)的工作主要包括以下幾個(gè)方面:加載新segments信息,刪除過(guò)期segments信息峭拘,管理segment的復(fù)制操作和segment的負(fù)載均衡。

協(xié)調(diào)節(jié)點(diǎn)周期性的執(zhí)行操作狮暑,執(zhí)行間隔通過(guò)配置參數(shù)指定棚唆。與Broker和Historical節(jié)點(diǎn)類似,協(xié)調(diào)節(jié)點(diǎn)也會(huì)與ZK維持一個(gè)長(zhǎng)連接心例,在執(zhí)行相應(yīng)的動(dòng)作之前宵凌,協(xié)調(diào)節(jié)點(diǎn)會(huì)從ZK獲取集群當(dāng)前的狀態(tài)。同時(shí)協(xié)調(diào)節(jié)點(diǎn)也維持著與一個(gè)數(shù)據(jù)庫(kù)的鏈接止后,其中存儲(chǔ)著可用segments和規(guī)則的信息瞎惫。可用segments信息存儲(chǔ)在segment表里译株,其中列除了所有在集群中加載的segments瓜喇。規(guī)則信息存儲(chǔ)在規(guī)則表中,它指明了segments應(yīng)該被怎樣處理歉糜。

在一個(gè)新segment被分配至歷史節(jié)點(diǎn)前乘寒,所有可用的歷史節(jié)點(diǎn)會(huì)根據(jù)已存儲(chǔ)數(shù)據(jù)的大小進(jìn)行排序,存儲(chǔ)數(shù)據(jù)最少的節(jié)點(diǎn)有最高的優(yōu)先級(jí)被分配到新segment匪补,這種機(jī)制是為了節(jié)點(diǎn)之間存儲(chǔ)的均衡伞辛。協(xié)調(diào)節(jié)點(diǎn)不會(huì)直接同歷史節(jié)點(diǎn)進(jìn)行通信,分配segment的過(guò)程是通過(guò)在ZK中相應(yīng)的歷史節(jié)點(diǎn)路徑下創(chuàng)建臨時(shí)segment信息節(jié)點(diǎn)完成的夯缺。一旦該動(dòng)作被歷史節(jié)點(diǎn)獲知蚤氏,該segment就會(huì)被歷史節(jié)點(diǎn)加載,并使其可查詢踊兜。

Running

io.druid.cli.Main server coordinator

Rules

Segments基于一組機(jī)制能夠?qū)崿F(xiàn)從集群中動(dòng)態(tài)的加載和刪除

Cleaning Up Segments

每一次執(zhí)行時(shí)竿滨,協(xié)調(diào)節(jié)點(diǎn)將會(huì)對(duì)數(shù)據(jù)庫(kù)中存儲(chǔ)的可用segment信息和集群中當(dāng)前可用的segment信息做比較。集群中存在但數(shù)據(jù)庫(kù)中不存在的segments將會(huì)被標(biāo)記并加入待刪除隊(duì)列。對(duì)于那些版本已過(guò)期并且數(shù)據(jù)已被新的segments覆蓋的segments也會(huì)被刪除于游。注意毁葱,如果數(shù)據(jù)庫(kù)中所有的segments都被刪除了(或者被標(biāo)記為不可用),協(xié)調(diào)節(jié)點(diǎn)這時(shí)不會(huì)從集群中刪除segments贰剥。

Segment Availability

如果一個(gè)歷史節(jié)點(diǎn)由于重啟或者其他原因處于不可用狀態(tài)头谜,協(xié)調(diào)節(jié)點(diǎn)會(huì)通知一個(gè)歷史節(jié)點(diǎn)丟失,并將該歷史節(jié)點(diǎn)服務(wù)的segments全部置為dropped鸠澈。在一段時(shí)間后柱告,這些segments會(huì)被重新分配給集群中的其它節(jié)點(diǎn)。但是笑陈,并不是每個(gè)被刪除的segments信息馬上就會(huì)被集群清理际度,會(huì)有一個(gè)數(shù)據(jù)結(jié)構(gòu)來(lái)存儲(chǔ)刪除的segments和它們對(duì)應(yīng)的生命周期。在這個(gè)周期時(shí)間內(nèi)涵妥,協(xié)調(diào)節(jié)點(diǎn)不會(huì)重新分配這個(gè)刪除的segments乖菱。因此,當(dāng)一個(gè)歷史節(jié)點(diǎn)在很短的時(shí)間內(nèi)轉(zhuǎn)變?yōu)榭捎脿顟B(tài)時(shí)蓬网,它就能馬上啟動(dòng)并使本地cache中的segments可用窒所,同時(shí)避免了segments在集群節(jié)點(diǎn)中的從新分配過(guò)程。

Balancing Segment Load

為了保證segments在集群中盡可能地均勻分布帆锋,協(xié)調(diào)節(jié)點(diǎn)在每次運(yùn)行時(shí)會(huì)計(jì)算每個(gè)歷史節(jié)點(diǎn)所服務(wù)的所有segments的數(shù)據(jù)量情況吵取。在集群每一層的歷史節(jié)點(diǎn)中,協(xié)調(diào)節(jié)點(diǎn)會(huì)選出存儲(chǔ)利用率最高和最低的歷史節(jié)點(diǎn)锯厢,如果兩個(gè)節(jié)點(diǎn)之間的利用率差值超過(guò)了一定的閾值皮官,協(xié)調(diào)節(jié)點(diǎn)就會(huì)將一部分segments從最高利用率節(jié)點(diǎn)遷移到最低利用率節(jié)點(diǎn),能夠遷移的segments數(shù)量上限通過(guò)一個(gè)參數(shù)來(lái)限制实辑。對(duì)于需要遷移Segments的選擇是隨機(jī)的捺氢,并且只有遷移動(dòng)作真正能使利用率降低的情況下segments才會(huì)被遷移。

HTTP Endpoints

協(xié)調(diào)節(jié)點(diǎn)提供的接口(協(xié)調(diào)節(jié)點(diǎn)提供的接口很多剪撬,這里列舉幾個(gè)摄乒,詳情請(qǐng)參考官網(wǎng) 【HTTP Endpoints】小節(jié)):

GET

  • /status
    返回Druid的版本信息、加載擴(kuò)展残黑、使用內(nèi)存馍佑、全部?jī)?nèi)存和該節(jié)點(diǎn)其他有用的信息

Coordinator information

  • /druid/coordinator/v1/leader
    返回當(dāng)前集群主協(xié)調(diào)節(jié)點(diǎn)
  • /druid/coordinator/v1/loadstatus
    返回已加載在集群中的segments和所有應(yīng)加載segments的比率
  • /druid/coordinator/v1/loadstatus?simple
    返回未加載的segments和所有應(yīng)加載segments的比率,不包括segments副本
  • /druid/coordinator/v1/loadstatus?full
    返回未加載的segments和所有應(yīng)加載segments的比率萍摊,包括segments副本
  • /druid/coordinator/v1/loadqueue
    返回每個(gè)歷史節(jié)點(diǎn)加載和刪除segments的ID
  • /druid/coordinator/v1/loadqueue?simple
    返回每個(gè)歷史節(jié)點(diǎn)加載和刪除segments的數(shù)目和及其加載和刪除的數(shù)據(jù)總量挤茄。
  • /druid/coordinator/v1/loadqueue?full
    返回每個(gè)歷史節(jié)點(diǎn)加載和刪除segments的json序列化信息如叼。

Metadata store information

  • /druid/coordinator/v1/metadata/datasources
    返回集群中所有可用的datasources列表
  • /druid/coordinator/v1/metadata/datasources?includeDisabled
    返回集群中所有可用的和不可用的datasources列表
  • /druid/coordinator/v1/metadata/datasources?full
    返回集群中所有可用的datasources列表及其存儲(chǔ)的meta信息冰木。
  • /druid/coordinator/v1/metadata/datasources/{dataSourceName}
    返回給定的datasource及其存儲(chǔ)的meta信息。
  • /druid/coordinator/v1/metadata/datasources/{dataSourceName}/segments
    返回一個(gè)給定datasource中的所有segments列表
  • /druid/coordinator/v1/metadata/datasources/{dataSourceName}/segments?full
    返回一個(gè)給定datasource中的所有segments列表及其meta信息

Datasources information

  • /druid/coordinator/v1/datasources
    返回集群中查詢到的datasources列表
  • /druid/coordinator/v1/datasources?simple
    返回一個(gè)包括datasource名稱及其配置信息的json對(duì)象,對(duì)象中包含segments數(shù)量踊沸,segments數(shù)據(jù)總大小歇终、最小時(shí)間和最大時(shí)間

Rules

以json對(duì)象的形式返回集群中所有datasource包括默認(rèn)datasource包含的rules信息。

Intervals

  • /druid/coordinator/v1/intervals
    返回所有datasource的intervals信息逼龟,包括總大小和數(shù)量

DELETE

  • /druid/coordinator/v1/datasources/{dataSourceName}
    disable 一個(gè)給定的datasource
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末评凝,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子腺律,更是在濱河造成了極大的恐慌奕短,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,386評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件匀钧,死亡現(xiàn)場(chǎng)離奇詭異翎碑,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)之斯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén)日杈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人佑刷,你說(shuō)我怎么就攤上這事莉擒。” “怎么了瘫絮?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,704評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵涨冀,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我麦萤,道長(zhǎng)蝇裤,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,702評(píng)論 1 294
  • 正文 為了忘掉前任频鉴,我火速辦了婚禮栓辜,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘垛孔。我一直安慰自己藕甩,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,716評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布周荐。 她就那樣靜靜地躺著狭莱,像睡著了一般。 火紅的嫁衣襯著肌膚如雪概作。 梳的紋絲不亂的頭發(fā)上腋妙,一...
    開(kāi)封第一講書(shū)人閱讀 51,573評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音讯榕,去河邊找鬼骤素。 笑死匙睹,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的济竹。 我是一名探鬼主播痕檬,決...
    沈念sama閱讀 40,314評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼送浊!你這毒婦竟也來(lái)了梦谜?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,230評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤袭景,失蹤者是張志新(化名)和其女友劉穎唁桩,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體耸棒,經(jīng)...
    沈念sama閱讀 45,680評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡朵夏,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,873評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了榆纽。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片仰猖。...
    茶點(diǎn)故事閱讀 39,991評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖奈籽,靈堂內(nèi)的尸體忽然破棺而出饥侵,到底是詐尸還是另有隱情,我是刑警寧澤衣屏,帶...
    沈念sama閱讀 35,706評(píng)論 5 346
  • 正文 年R本政府宣布躏升,位于F島的核電站,受9級(jí)特大地震影響狼忱,放射性物質(zhì)發(fā)生泄漏膨疏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,329評(píng)論 3 330
  • 文/蒙蒙 一钻弄、第九天 我趴在偏房一處隱蔽的房頂上張望佃却。 院中可真熱鬧,春花似錦窘俺、人聲如沸饲帅。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,910評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)灶泵。三九已至,卻和暖如春对途,著一層夾襖步出監(jiān)牢的瞬間赦邻,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,038評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工实檀, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留惶洲,地道東北人按声。 一個(gè)月前我還...
    沈念sama閱讀 48,158評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像湃鹊,于是被迫代替她去往敵國(guó)和親儒喊。 傳聞我的和親對(duì)象是個(gè)殘疾皇子镣奋,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,941評(píng)論 2 355