武漢北大青鳥職業(yè)教育Logo

0
在招課程

0
校區(qū)數量

 

咨詢電話:

一文講解大數據處理分析引擎Presto

 

一文講解大數據處理分析引擎Presto

 
標簽: 武漢北大青鳥 北大青鳥IT

大數據時代對數據的處理分析提出了很多需求,企業(yè)用戶希望能從業(yè)務數據生成報表、進行運營分析、進行實時推薦計算。因此,在大數據處理分析領域出現了很多工具,列式數據庫Clickhouse、Hbase提供了存儲和分析能力,Hadoop家族中的MapReduce、HDFS提供了離線計算能力,Hive以數據倉庫的形態(tài)提供了簡單易學的分析能力,實時計算引擎Flink更是提供了流批處理計算能力,可謂是各有千秋??!不過工具千千萬,唯有適合自己的才是最好的,今天我們要介紹的便是Presto。

Presto是Facebook公司開源的分布式SQL查詢引擎,支持PB級別的數據計算,之所以在眾多分析引擎中選擇它,主要是因為它是一個能夠獨立運行、不依賴其他外部系統(tǒng);此外簡單的數據結構使得大部分數據的接入很容易;最后豐富的插件接口可以對接很多數據源系統(tǒng)?;趦却嬗嬎愕哪J健⒒诹魉€設計邊運行邊出結果的運行模式也使得Presto很快就能獲取處理數據。綜上原因,諸如阿里、美團等互聯網巨頭在數據分析中也使用Presto做底層引擎。

Presto的架構如下所示,它包含Client、DiscoveryService、Coordinator、Worker、Connector五大部分。Client包含presto自帶的客戶端、通過API調用的JDBC客戶端;DiscoveryService是一個注冊中心,所有的Worker節(jié)點都向其進行注冊,Coordinator從其獲取worker節(jié)點,有點類似微服務架構中的“生產者-注冊中心-消費者”之間的關系;Worker負責從Connector獲取數據,執(zhí)行數據分析任務;Connector負責獲取數據源信息,可以接收來自文件系統(tǒng)如HDFS的數據,也可以接收數據庫如Mysql、Clickhouse的數據,甚至是消息隊列如Kafka中的數據。

一文講解大數據處理分析引擎Presto

那么在Presto中如何執(zhí)行一個SQL查詢任務呢?簡單來說,大概是這樣的:用戶在客戶端發(fā)出一個SQL查詢請求,Coordinator接受來自客戶端的請求,并對該SQL語句進行解析,生成查詢計劃,按查詢計劃依次生成SQLQueryExecution—》SQLStageExecution—〉HTTPRemotePlan,把最后的Plan任務分配給到Worker節(jié)點;Worker節(jié)點根據任務內容從Connector中獲取數據,執(zhí)行計算,計算完畢后把結果給到Coordinator,Coordinator獲取結果把結果寫入緩存,客戶端不斷輪詢Coordinator中的查詢結果,一次任務執(zhí)行完畢,把數據給用戶展示出來。

介紹完Presto如何執(zhí)行一個SQL任務后,我們再來看看它的數據結構和存儲模型。在Presto中的數據結構是三層模型,Catalog-》Schema-〉Table,Catalog對應一個數據源,Schema對應數據源中的數據庫,Table對應數據庫中的表。在Presto的存儲模型中包含Page-》Block,Page是多行數據的集合(每一行又包含多個列的數據),也是Presto計算處理的最小數據單元,Block是具體的一列數據。清晰了Presto的數據結構和存儲模型,在接入Presto時就比較清晰了。

Presto處理速度快,除了Worker節(jié)點基于內存進行運算處理之外,在Worker節(jié)點內部、Worker節(jié)點之間都是采用流水線模型進行計算。這給用戶造成的感覺就是很快,剛輸入就有結果了,先看前面的結果再看后面的結果。

同樣是數據處理分析引擎,處理速度的差別卻是各不相同,這主要和使用工具的架構及運行原理有關系。早期Facebook是使用Hive做數據分析處理,后來因為實在太慢了,所以才自己開發(fā)寫了Presto,據說同樣的一個SQL查詢任務,在Hive中需要差不多一分鐘,但Presto人中卻不到1秒,那今天我們也感受一波Facebook公司的數據分析處理歷史吧。

關于Hive,它是基于Hadoop的數據倉庫工具,使用Hive也可以進行數據查詢分析處理,我們一起來看看Hive中又是如何運轉的呢?在Hive中,所有的HQL語句轉化成數據查詢任務,所有的數據在進行處理前會劃分成大小相同的數據,經過Map模型初次處理數據,得到中間結果,再經過Reduce模型二次處理中間結果數據,最后得到分析數據,存儲在HDFS。在該模型中,所有的數據分析處理需要經過多次轉換成中間結果,比較慢;其次在MR模型中所生成的中間數據都是存儲在磁盤中的,每次數據進入磁盤,再從磁盤讀取出來,非常的耗費IO,時間延遲太長了。

一文講解大數據處理分析引擎Presto

介紹完Presto后,我們再回歸現實,了解下互聯網現況?;ヂ摼W、移動互聯網、物聯網、5G、人工智能、云計算等技術的不斷發(fā)展,越來越多數據的產生,企業(yè)精細化運營的要求,在催生了大量的數據處理分析工具之時,也催生了諸如數據倉庫、數據集市、數據湖、數據中臺等業(yè)態(tài),不斷的在給大數據領域輸送力量,對于數據分析人才的訴求也一直有增無減,后浪們,我們一起加油吧!

有問必答,專業(yè)學習規(guī)劃師為您免費咨詢解答
課程底價、品牌對比、師資力量、學習時間、課程內容、報考政策...想了解什么?就來咨詢學習規(guī)劃師吧!
登錄后發(fā)表評論
評論
 
 
預約試聽