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ù)大小的兩倍。

- 數(shù)據(jù)分布情況是四個(gè)Historical均勻分布,四個(gè)節(jié)點(diǎn)的大小是差不多的。

對(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 &

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

- 點(diǎn)擊添加規(guī)則

- 第一個(gè)規(guī)則

loadByPeriod 周期性
PT1H 最近1個(gè)小時(shí)
Include future 未來(lái)一直是這樣
Replicants 1 副本為1個(gè)
Tier hot 熱數(shù)據(jù)
第二個(gè)規(guī)則

loadByPeriod 周期性
PT1H 最近3個(gè)小時(shí)
Include future 未來(lái)一直是這樣
Replicants 1 副本為1個(gè)
Tier hot 冷數(shù)據(jù)
下一步

- 描述信息 保存

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

[1] 第一次更改規(guī)則
去除 hot規(guī)則中 Include future 選項(xiàng)

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

可以看到hot節(jié)點(diǎn)是保留了最新一個(gè)小時(shí)的數(shù)據(jù),但是剩余的數(shù)據(jù)全部在cold節(jié)點(diǎn),這樣也是不對(duì)的
[2] 第二次更改規(guī)則
去除 cold規(guī)則中 Include future 選項(xiàng)

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

可以看到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ù)分布是這樣的

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

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

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

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

這樣就能滿(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ù),其他的不要

最終的數(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)題


[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)題


[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í)的


[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)



因?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è)試吧。