Facebook的數據倉庫存儲在少許大型Hadoop/HDFS集羣。Hive是Facebook在幾年前專爲Hadoop打造的一款數據倉庫工具。在之前,Facebook的科學家和分析師一直依靠Hive來作數據分析。但Hive使用MapReduce做爲底層計算框架,是專爲批處理設計的。但隨着數據愈來愈多,使用Hive進行一個簡單的數據查詢可能要花費幾分到幾小時,顯然不能知足交互式查詢的需求。Facebook也調研了其餘比Hive更快的工具,但它們要麼在功能有所限制要麼就太簡單,以致於沒法操做Facebook龐大的數據倉庫。html
2012年開始試用的一些外部項目都不合適,他們決定本身開發,這就是Presto。2012年秋季開始開發,目前該項目已經在超過 1000名Facebook僱員中使用,運行超過30000個查詢,每日數據在1PB級別。Facebook稱Presto的性能比Hive要好上10倍多。2013年Facebook正式宣佈開源Presto。架構
Presto查詢引擎是一個Master-Slave的架構,由框架
Coordinator負責解析SQL語句,生成執行計劃,分發執行任務給Worker節點執行。
Worker節點負責實際執行查詢任務。Worker節點啓動後向Discovery Server服務註冊,Coordinator從Discovery Server得到能夠正常工做的Worker節點。若是配置了Hive Connector,須要配置一個Hive MetaStore服務爲Presto提供Hive元信息,Worker節點與HDFS交互讀取數據。ide
Presto官方文檔 http://prestodb.io/工具
Facebook Presto團隊介紹Presto的文章 https://www.facebook.com/notes/facebook-engineering/presto-interacting-with-petabytes-of-data-at-facebook/10151786197628920oop
SlideShare兩個分享Presto 的PPT http://www.slideshare.net/zhusx/presto-overview?from_search=1 http://www.slideshare.net/frsyuki/hadoop-source-code-reading-15-in-japan-presto性能
Presto實現原理和美團的使用實踐 https://tech.meituan.com/2014/06/16/presto.html.net