由于學(xué)習(xí)Druid的中文資料很少,所以決定翻譯官方文檔,希望能幫助更多的小伙伴學(xué)習(xí)Druid,自己英語(yǔ)水平有限,哪里有翻譯錯(cuò)的地方請(qǐng)聯(lián)系我,我會(huì)及時(shí)修改。謝謝。
感謝優(yōu)酷土豆張海雷技術(shù)大牛的幫助
節(jié)點(diǎn)類(lèi)型(Node Type)
IndexingService
原文鏈接:http://druid.io/docs/0.9.0/design/indexing-service.html
Indexing service的配置請(qǐng)查看鏈接Indexing Service Configuration.
Indexing service是一種高可用、分布式的服務(wù),該服務(wù)將運(yùn)行索引相關(guān)的任務(wù)。Indexing service的任務(wù)是創(chuàng)建(有時(shí)需要銷(xiāo)毀)Druid segments。Indexing service采用主/從服務(wù)就架構(gòu)。
Indexing service主要由三個(gè)組件構(gòu)成,一個(gè)peon運(yùn)行一個(gè)任務(wù),一個(gè)middle manager負(fù)責(zé)管理多個(gè)peon,overlord負(fù)責(zé)接收新的任務(wù)分配給middle manager,overlord和middle manager可以運(yùn)行在同一節(jié)點(diǎn)或跨多個(gè)節(jié)點(diǎn),而middle manager和peon一般運(yùn)行在同一個(gè)節(jié)點(diǎn)。
Indexing service架構(gòu)

三個(gè)關(guān)鍵組件的介紹:
Overlord節(jié)點(diǎn)
Overlord節(jié)點(diǎn)負(fù)責(zé)接收任務(wù),協(xié)調(diào)和分配任務(wù),為任務(wù)創(chuàng)建鎖,并返回任務(wù)狀態(tài)給任務(wù)發(fā)送方,Overlord有兩種運(yùn)行模式:本地模式或者遠(yuǎn)程模式(默認(rèn)本地模式)。在本地模式下Overlord負(fù)責(zé)創(chuàng)建peon用于執(zhí)行任務(wù)。本地模式運(yùn)行Overlord時(shí),必須提供middle manager和peon的配置。本地模式通常用于簡(jiǎn)單的工作流程。在遠(yuǎn)程模式中,overlord和middle manager運(yùn)行在單獨(dú)的進(jìn)程,并且可以部署在不同的服務(wù)器上單獨(dú)運(yùn)行。如果想使用Indexing service為druid只提供所有的索引服務(wù),推薦使用遠(yuǎn)程模式。
提交任務(wù)和查詢?nèi)蝿?wù)狀態(tài)
任務(wù)以JSON Object的方式提交到Overlord節(jié)點(diǎn),任務(wù)通過(guò)http post的方式提交:

可以通過(guò)http post的方式結(jié)束任務(wù):

可以通過(guò)http get方式查看任務(wù)運(yùn)行狀態(tài):

Task segments也可以通過(guò)http get的方式獲得:

Overlord控制臺(tái)
Overlord控制臺(tái)可以查看等待的任務(wù)、運(yùn)行的任務(wù)、可用的worker,最近創(chuàng)建和結(jié)束的worker。Overlord控制臺(tái)訪問(wèn)方式:

自動(dòng)縮放
自動(dòng)縮放機(jī)制現(xiàn)在已經(jīng)和我們的調(diào)度框架整合到了一起,但是這個(gè)框架也可以有其他的實(shí)現(xiàn),我們是高度開(kāi)放的,可以進(jìn)行其他新的實(shí)現(xiàn)或者擴(kuò)展現(xiàn)有的機(jī)制。在我們自己的部署中middle manager被部署在亞馬遜AWS EC2節(jié)點(diǎn),middle manager可以將自己配置成為一個(gè)galaxy環(huán)境(galaxy參考https://github.com/ning/galaxy)
如果自動(dòng)縮放被啟用,一個(gè)任務(wù)等待時(shí)間太長(zhǎng)就會(huì)添加新的middle manager,如果middle manager一段時(shí)間沒(méi)有運(yùn)行任務(wù),middle manager會(huì)被終止。
Middle Manager Node
原文鏈接http://druid.io/docs/0.9.0/design/middlemanager.html
Middle Manager的配置請(qǐng)查看Indexing Service
Configuration.
middle manager節(jié)點(diǎn)是執(zhí)行提交任務(wù)的工作節(jié)點(diǎn)。middle manager將任務(wù)分發(fā)到peons運(yùn)行,一個(gè)peon在一個(gè)單獨(dú)的jvm中運(yùn)行。原因是我們通過(guò)單獨(dú)的jvm對(duì)任務(wù)做資源隔離和日志隔離。一個(gè)peon在一個(gè)時(shí)間只能運(yùn)行一個(gè)任務(wù),然而,一個(gè)middle manager可以管理多個(gè)peon。
運(yùn)行middle manager

Peons
原文鏈接http://druid.io/docs/0.9.0/design/peons.html
查看peon的配置:http://druid.io/docs/0.9.0/configuration/indexing-service.html
Peon在一個(gè)單獨(dú)的jvm中運(yùn)行任務(wù),MiddleManager負(fù)責(zé)創(chuàng)建peons用于運(yùn)行任務(wù)。Peons應(yīng)該很少是手動(dòng)單獨(dú)啟動(dòng)運(yùn)行(除非是為了測(cè)試)。
啟動(dòng)方式:
