Druid Historical Node

Druid的Historical 節點主要負責加載深存儲中或Real-time節點創建的不可變數據塊(segment),這些節點不會相互感知,只知道如何加載(load)、刪除(drop)、和操作segment。

Historical 節點通過zookeeper來記錄它們的在線狀態和保存它們維護的數據元數據信息,比如加載和刪除指令包含的segment在深存儲中的位置信息等。

在從深存儲中加載一個segment時,Historical 節點會先檢查本地緩存是否含有該segment信息,如果沒有,就從深存儲中加載,並將該segment的可以寫到本地緩存中,待加載完成,該segment的位置信息會被寫到zookeeper中,此時該segment才能夠被查詢。加載過程如下圖:

另外,根據數據的重要程度,可以對數據Historical 節點分組,稱之爲層級(tiers)。每個層級可以設置不同的性能和容錯參數。比如那些被頻繁訪問的segment歸入一個層,稱之爲hot tier,那些較少訪問的segment歸入一層,稱之爲cold tier。

由於Historical 節點使用zookeeper來保存一些元數據信息,如果zookeeper變得不可用,Historical節點將不能爲新的數據提供服務,但是仍然可以對當前正在處理的數據提供查詢,即不會影響當前數據的可用性。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章