Apache Druid0.17版本冷熱數(shù)據(jù)分離設(shè)置

Druid0.17版本冷熱數(shù)據(jù)分離設(shè)置

有一個(gè)安裝好的Druid集群,安裝Druid集群請(qǐng)參考 Druid0.17.0版本集群實(shí)施文檔

這里我已經(jīng)按照上面的步驟向集群中寫(xiě)入了一個(gè)數(shù)據(jù)源。

集群規(guī)劃

根據(jù)已安裝的集群對(duì)Druid的數(shù)據(jù)服務(wù)器做一個(gè)規(guī)劃

  • 主機(jī)名稱(chēng)列表

    • master 192.168.1.91
    • node1 192.168.1.92
    • node2 192.168.1.93
    • node3 192.168.1.94
    • node4 192.168.1.95
    • node5 192.168.1.96
  • node2 存儲(chǔ)熱數(shù)據(jù)(hot)分組

  • node3 存儲(chǔ)冷數(shù)據(jù)(clod)分組

  • node4 node5 存儲(chǔ)默認(rèn)數(shù)據(jù)(default)分組

當(dāng)前數(shù)據(jù)分布情況

  • 當(dāng)前數(shù)據(jù)源 為demo 數(shù)據(jù)大小為380MB左右,副本大小為760MB左右,因?yàn)槭?個(gè)副本,所以副本大小應(yīng)該是數(shù)據(jù)大小的兩倍。
2020611224926
  • 數(shù)據(jù)分布情況是四個(gè)Historical均勻分布,四個(gè)節(jié)點(diǎn)的大小是差不多的。
2020611225139

對(duì)冷熱數(shù)據(jù)分布規(guī)劃

  • 熱數(shù)據(jù) 保留最近1個(gè)小時(shí)的數(shù)據(jù),副本為2個(gè)
  • 冷數(shù)據(jù) 保留最近3個(gè)小時(shí)的數(shù)據(jù),副本為1個(gè)
  • 默認(rèn)數(shù)據(jù) 保留所有的數(shù)據(jù),副本為1個(gè)

修改Historical的相關(guān)配置

對(duì)數(shù)據(jù)服務(wù)器Historical更改配置(更改 node2 節(jié)點(diǎn)的 )

vim $DRUID_HOME/conf/druid/cluster/data/historical/runtime.properties

druid.server.tier=hot
druid.server.priority=100

對(duì)數(shù)據(jù)服務(wù)器Historical更改配置(更改 node3 節(jié)點(diǎn)的 )

vim $DRUID_HOME/conf/druid/cluster/data/historical/runtime.properties

druid.server.tier=clod
druid.server.priority=100

改完之后,停止所有的數(shù)據(jù)服務(wù) node2 node3 node4 node5 執(zhí)行

停止
service --down

啟動(dòng)
nohup start-cluster-data-server 1>/dev/null 2>&1 &
202061123750

從上圖就能看出來(lái),默認(rèn)規(guī)則的數(shù)據(jù)會(huì)分布在 node4 node5 在沒(méi)有設(shè)置規(guī)則的時(shí)候使用的是默認(rèn)的規(guī)則

設(shè)置規(guī)則

  • 點(diǎn)擊設(shè)置規(guī)則
20206112399
  • 點(diǎn)擊添加規(guī)則
2020611231428
  • 第一個(gè)規(guī)則
2020611231612
  • loadByPeriod 周期性

  • PT1H 最近1個(gè)小時(shí)

  • Include future 未來(lái)一直是這樣

  • Replicants 1 副本為1個(gè)

  • Tier hot 熱數(shù)據(jù)

  • 第二個(gè)規(guī)則

202061123198
  • loadByPeriod 周期性

  • PT1H 最近3個(gè)小時(shí)

  • Include future 未來(lái)一直是這樣

  • Replicants 1 副本為1個(gè)

  • Tier hot 冷數(shù)據(jù)

  • 下一步

2020611232036
  • 描述信息 保存
2020611232110

數(shù)據(jù)分布結(jié)果是這樣的,數(shù)據(jù)全部加載到 hot 節(jié)點(diǎn)

2020612096

[1] 第一次更改規(guī)則

去除 hot規(guī)則中 Include future 選項(xiàng)

202061202534

數(shù)據(jù)分布是這樣的

202061202750

可以看到hot節(jié)點(diǎn)是保留了最新一個(gè)小時(shí)的數(shù)據(jù),但是剩余的數(shù)據(jù)全部在cold節(jié)點(diǎn),這樣也是不對(duì)的

[2] 第二次更改規(guī)則

去除 cold規(guī)則中 Include future 選項(xiàng)

20206120302

數(shù)據(jù)分布是這樣的

20206120317

可以看到hot節(jié)點(diǎn)數(shù)據(jù)還是一個(gè)小時(shí),但是cold的數(shù)據(jù)全部沒(méi)有了,default 兩個(gè)節(jié)點(diǎn)都加載了全部的數(shù)據(jù),因?yàn)槟J(rèn)規(guī)則是兩個(gè)副本,還是有問(wèn)題的

[3] 經(jīng)過(guò)多次的配置之后發(fā)現(xiàn),還是這樣的問(wèn)題,

一直出現(xiàn)這樣的問(wèn)題,我個(gè)人認(rèn)為數(shù)據(jù)分三層似乎行不通

[4] 我決定把node3 設(shè)置為hot

vim $DRUID_HOME/conf/druid/cluster/data/historical/runtime.properties

druid.server.tier=hot
druid.server.priority=100

重啟之后,數(shù)據(jù)分布是這樣的

20206121018

更改規(guī)則 hot數(shù)據(jù)為2個(gè)副本

20206121142

當(dāng)前的節(jié)點(diǎn)分布(把默認(rèn)的副本改成了1個(gè) 刪除了所有的規(guī)則)

202061211139

[5] 配置熱數(shù)據(jù)保存最近2個(gè)小時(shí) 2個(gè)副本

202061211237

數(shù)據(jù)分布

202061211540

這樣就能滿(mǎn)足熱數(shù)據(jù)多個(gè)副本,提高查詢(xún)的效率,其他的數(shù)據(jù)加載一個(gè)副本,

[6] 加載最近4個(gè)小時(shí)的數(shù)據(jù),前1小時(shí)為熱數(shù)據(jù),后3個(gè)小時(shí)為冷數(shù)據(jù),其他的不要

20206121191

最終的數(shù)據(jù)分布也是不正確的。

經(jīng)過(guò)多次的配置嘗試

總結(jié)

Druid的新版的規(guī)則配置上,加載規(guī)則配置一個(gè),刪除規(guī)則配置一個(gè)。或者加載規(guī)則配置一個(gè),然后會(huì)默認(rèn)使用默認(rèn)規(guī)則。

[1] 配置一個(gè)周期加載規(guī)則和一個(gè)刪除規(guī)則,從圖上看是加載了數(shù)據(jù)到hot節(jié)點(diǎn),但是從segment-cache上看就能看到加載的不是最近2小時(shí)的,是幾個(gè)小時(shí)之前的,當(dāng)時(shí)查詢(xún)似乎是沒(méi)有問(wèn)題

202061303743
202061303959

[2] 配置一個(gè)周期加載規(guī)則和一個(gè)刪除規(guī)則,從圖上看是加載了數(shù)據(jù)到default節(jié)點(diǎn),但是從segment-cache上看就能看到加載的不是最近2小時(shí)的,是幾個(gè)小時(shí)之前的,當(dāng)時(shí)查詢(xún)似乎是沒(méi)有問(wèn)題

202061303912
20206130390

[3] 配置一個(gè)周期加載規(guī)則和一個(gè)刪除規(guī)則,hot節(jié)點(diǎn)一個(gè)副本,default一個(gè)副本,從圖上看是加載了數(shù)據(jù)到兩個(gè)節(jié)點(diǎn)節(jié)點(diǎn),但是從segment-cache上看就能看到加載的不是最近2小時(shí)的

202061304022
202061304157

[4] 加載所有的數(shù)據(jù),最近2個(gè)小時(shí)為hot數(shù)據(jù)2個(gè)副本,其余的為cold數(shù)據(jù),1個(gè)副本,規(guī)則勾選include future選項(xiàng)。從結(jié)果上看是周期加載的最近10個(gè)小時(shí)的數(shù)據(jù)到hot節(jié)點(diǎn)上,剩余其他數(shù)據(jù)加載到了default節(jié)點(diǎn)上,使用的默認(rèn)規(guī)則。

hot數(shù)據(jù)分布在hot節(jié)點(diǎn)
cold數(shù)據(jù)分布在default節(jié)點(diǎn)

2020617121025
2020617121043
202061712112

因?yàn)闇y(cè)試的時(shí)間還是比較短,而且有一個(gè)時(shí)區(qū)的問(wèn)題,沒(méi)有準(zhǔn)確的看到具體的情況(我的機(jī)器的時(shí)區(qū)全部是CST),感覺(jué)時(shí)區(qū)這塊有些影響,不然不會(huì)一直保留的是10個(gè)小時(shí)的數(shù)據(jù)。后面有機(jī)會(huì)在做測(cè)試,同時(shí)還有一個(gè)問(wèn)題就是,當(dāng)hot節(jié)點(diǎn)就一個(gè)是,設(shè)置副本大于1時(shí),其實(shí)是不生效的,當(dāng)hot節(jié)點(diǎn)有多個(gè)的時(shí)候才生效。

上面測(cè)試遇到很多的問(wèn)題,就是設(shè)置了規(guī)則發(fā)現(xiàn)不加載,或者只加載到同一類(lèi)型的節(jié)點(diǎn)上去,因?yàn)闀r(shí)間也是比較短,不能長(zhǎng)時(shí)間觀察,可能也是和時(shí)區(qū)有關(guān)系。這個(gè)問(wèn)題,當(dāng)時(shí)沒(méi)有注意到,最后面發(fā)覺(jué)這方面問(wèn)題,最近不想在測(cè)試了,后面找時(shí)間在測(cè)試吧。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容