今天介紹在混合云架構中運行Presto Engine的內容。將Presto工作負載從完全內部部署環境遷移到云基礎架構具有許多好處,包括減輕資源爭用并通過按需購買計算資源來降低成本。如果Presto在HDFS中存儲的數據上運行,則由于Presto的體系結構使存儲和計算組件能夠獨立運行,因此云計算和本地存儲之間的分離是顯而易見的。在云中的Presto混合環境中,從本地環境中檢索HDFS數據的關鍵問題是兩個群集之間的網絡延遲。
這個關鍵的瓶頸嚴重限制了任何工作負載的性能,因為其大部分時間都花在了可能位于地理位置不同的網絡之間傳輸請求的數據上。結果,大多數公司將其數據復制到云環境中并維護該重復數據,也稱為Lift and Shift。有合規性和數據主權要求的公司甚至可能阻止組織將數據復制到云中。這種方法不可擴展,需要付出大量的人工才能獲得合理的結果。
本文介紹了Alluxio充當數據編排層,以幫助有效地將數據提供給Presto的方法,而不是直接查詢遙遠的HDFS群集或將數據的本地化副本手動提供給云群集中的Presto。
具有Alluxio和Presto的混合云架構
在以下架構圖中,Presto和Alluxio進程都位于云群集中。就Presto而言,它正在查詢數據并將其寫入Alluxio,就好像它是位于同一位置的HDFS集群一樣。當Alluxio收到數據請求時,最初會從遠程HDFS群集中獲取數據,但后續請求將直接從其緩存中獲得。
當Presto發送數據以將其持久存儲到存儲中時,Alluxio會將數據異步寫入HDFS,從而使Presto工作量免于等待遠程寫入完成的麻煩。在讀取和寫入兩種情況下,除初始讀取外,Presto工作負載都能以與HDFS群集相同的網絡運行,即使不是更快,性能也一樣。請注意,除了部署和配置Alluxio以及在Presto和Alluxio之間建立連接之外,不需要其他配置或其他手動操作即可維護混合環境。
標桿績效
為了進行基準測試,我們將使用Presto作為計算框架,以對地理上分離的Hive和HDFS群集中的數據運行SQL查詢。
本節中用于實驗的混合云環境包括位于不同AWS區域的兩個Amazon EMR集群。由于兩個群集在地理位置上分散,因此群集之間存在明顯的網絡延遲。VPC對等用于創建VPC連接,以允許兩個AWS VPC之間通過全局AWS骨干網之間的流量,而不會出現帶寬瓶頸。如果使用AWS作為云提供商,則讀者可以按照白皮書中的教程來重現基準測試結果。
我們將行業標準TPC-DS基準中的數據和查詢用于決策支持系統,該系統可檢查大量數據并回答業務問題。
我們將TPC-DS查詢的子集分為以下幾類(根據此存儲庫中的可視化):報告,交互式和深度分析。
使用Alluxio,我們為所有TPC-DS查詢收集兩個數字;用冷暖表示。
· 感冒是其中運行查詢之前的數據沒有在Alluxio存儲加載的情況下。在這種情況下,Alluxio在查詢執行期間按需從HDFS提取數據。
· 在冷運行后,將數據加載到Alluxio存儲中的情況是熱的。后續訪問相同數據的查詢不會與HDFS通信。
借助HDFS,我們也可以收集兩個數字。本地和遠程。
· 本地是指Presto和HDFS位于同一區域的情況。此數字向我們顯示了在本地數據而不爆發到云中時在本地運行計算的性能。
· 遠程是Presto從另一個區域的存儲讀取的情況。
我們比較了Alluxio(冷和暖)和HDFS(本地和遠程)的性能。基準測試表明,當緩存因遠程訪問HDFS數據而受熱時,Alluxio的性能平均提高了3倍。
在此存儲庫中可用的104個查詢中,q72在遠程訪問數據時未完成,而在本地數據時花費了5個小時以上。除此之外,白皮書中的結果包括所有其余103個查詢。
下表按類別總結了結果。總體與Alluxio看到的最大改進是為Q9(7.1倍),最低是為q39a(1X -沒有區別)。
· 查詢類別:報告
· 最大改善:q27(3.1x)
· 最低改進:q43(2.7倍)
· 查詢類別:互動
· 最大改善:q73(3.9x)
· 最低改進:q98(2.2x)
· 查詢類別:深度分析
· 最大改善:q34(4.2x)
· 最低改進:q59(1.9倍)
對于具有10個節點的計算群集,從地理上分離的群集訪問數據時,貫穿所有查詢運行的峰值帶寬利用率保持在2Gbps以下。帶寬不是AWS骨干網的瓶頸。隨著利用率隨著計算群集的大小而擴展,當不使用Alluxio時,較大的群集可能會遇到帶寬瓶頸,因為直接連接可用的帶寬可能會受到限制。
當無縫緩存到本地的Alluxio群集中時,通過Alluxio可以看到的大多數性能提升都可以通過元數據和數據的延遲差異來解釋。
結論
混合云架構允許將云計算資源用于數據分析,即使數據位于完全不同的網絡中也是如此。除了獲得顯著更好的性能外,概述的執行計劃不需要對內部部署基礎結構進行任何重大重新配置。
由于用戶可以利用公共云的計算能力,因此這為Presto提供了更多機會,可將其用作可擴展的高性能計算框架,以使用內部存儲的數據進行分析。
好了,關于在混合云架構中運行Presto Engine的內容介紹到這里就結束了,想了解更多關于云計算的信息,請繼續關注中培偉業吧。