數(shù)據(jù)源部分,Hermes是攜程框架部門提供的消息隊(duì)列,基于Kafka和MySQL做為底層實(shí)現(xiàn)的封裝,應(yīng)用于系統(tǒng)間實(shí)時(shí)數(shù)據(jù)傳輸交互通道。Hive和HDFS是攜程海量數(shù)據(jù)的主要存儲(chǔ),兩者來自Hadoop生態(tài)體系。Hadoop大家已經(jīng)很熟悉,如果不熟悉的同學(xué)只要知道Hadoop主要用于大數(shù)據(jù)量存儲(chǔ)和并行計(jì)算批處理工作。
Hive是基于Hadoop平臺(tái)的數(shù)據(jù)倉庫,沿用了關(guān)系型數(shù)據(jù)庫的很多概念。比如說數(shù)據(jù)庫和表,還有一套近似于SQL的查詢接口的支持,在Hive里叫做HQL,但是其底層的實(shí)現(xiàn)細(xì)節(jié)和關(guān)系型數(shù)據(jù)庫完全不一樣,Hive底層所有的計(jì)算都是基于MR來完成,我們的數(shù)據(jù)工程師90%都數(shù)據(jù)處理工作都基于它來完成。
離線部分,包含的模塊有MR、Hive、Mahout、SparkQL/MLLib。Hive上面已經(jīng)介紹過,Mahout簡單理解提供基于Hadoop平臺(tái)進(jìn)行數(shù)據(jù)挖掘的一些機(jī)器學(xué)習(xí)的算法包。Spark類似hadoop也是提供大數(shù)據(jù)并行批量處理平臺(tái),但是它是基于內(nèi)存的。SparkQL 和Spark MLLib是基于Spark平臺(tái)的SQL查詢引擎和數(shù)據(jù)挖掘相關(guān)算法框架。我們主要用Mahout和Spark MLLib進(jìn)行數(shù)據(jù)挖掘工作。
調(diào)度系統(tǒng)zeus,是淘寶開源大數(shù)據(jù)平臺(tái)調(diào)度系統(tǒng),于2015年引進(jìn)到攜程,之后我們進(jìn)行了重構(gòu)和功能升級(jí),做為攜程大數(shù)據(jù)平臺(tái)的作業(yè)調(diào)度平臺(tái)。
近線部分,是基于Muise來實(shí)現(xiàn)我們的近實(shí)時(shí)的計(jì)算場景,Muise是也是攜程OPS提供的實(shí)時(shí)計(jì)算流處理平臺(tái),內(nèi)部是基于Storm實(shí)現(xiàn)與HERMES消息隊(duì)列搭配起來使用。例如,我們使用MUSIE通過消費(fèi)來自消息隊(duì)列里的用戶實(shí)時(shí)行為,訂單記錄,結(jié)合畫像等一起基礎(chǔ)數(shù)據(jù),經(jīng)一系列復(fù)雜的規(guī)則和算法,實(shí)時(shí)的識(shí)別出用戶的行程意圖。