您好,登錄后才能下訂單哦!
如何在混合云架構中高效運行Presto,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
將SQL工作負載從完全的本地環境遷移到云環境中有許多好處,包括降低資源競爭、通過按需購買計算資源來降低費用。當Presto的數據存儲在HDFS中時,由于Presto的架構允許存儲和計算的組件獨立操作,在云環境中的計算與本地的存儲之間的分離是顯而易見的。在云上通過在Presto檢索本地的HDFS數據這樣的混合環境里面,一個關鍵的問題是兩個集群之間的網絡延遲。
這個關鍵的瓶頸嚴重限制了所有工作負載的性能,因為其大部分時間都花在了可能位于地理位置不同的網絡之間傳輸請求的數據上。結果,大多數公司將其數據復制到云環境中并維護該數據副本,也稱為Lift and Shift。有合規性和數據主權要求的公司甚至可能阻止組織將數據復制到云中。這種方法不可擴展,需要付出大量的人工才能獲得合理的結果。下面介紹了Alluxio充當數據編排層,以幫助將數據高效地提供給Presto,而不是直接查詢遠程的HDFS集群或將數據的本地化副本手動提供給云集群中的Presto。
采用Alluxio和Presto的混合云架構
在以下架構圖中,Presto和Alluxio進程都位于云集群中。就Presto而言,它正在查詢數據并將其寫入Alluxio,就好像Alluxio是位于同一位置的HDFS集群一樣。當Alluxio收到數據請求時,最初會從遠程HDFS集群中獲取數據,但后續請求將直接從其緩存中獲取。當Presto發送數據以將其持久化到存儲中時,Alluxio會將數據異步寫入HDFS,從而使Presto工作負載免于等待遠程寫入完成的麻煩。在讀取和寫入兩種情況下,除了初始讀取外,Presto工作負載都能夠以與HDFS集群在相同的網絡中的性能運行(即使不是更快)。請注意,除了部署和配置Alluxio以及在Presto和Alluxio之間建立連接之外,不需要其他配置或其他手動操作即可維護混合環境。
基準測試性能
為了進行基準測試,我們對地理上分離的Hive和HDFS集群中的數據運行SQL查詢。
使用Alluxio,我們為所有TPC-DS查詢收集兩種數據,分別表示為Cold和Warm。
使用HDFS, 我們也收集了兩種數據,分別表示為Local和Remote
Local是指Presto和HDFS在同一個區域中。這個數據表示的是計算和數據都在本地(而不需要拉到云環境中)的性能。
我們對比了Presto使用Alluxio(包含Code和Warm)和直接讀取HDFS(包含Local和Remote)的性能。基準測試顯示,使用Alluxio并且數據緩存在Alluxio中與直接從遠程讀取HDFS相比,平均性能提升是原來的3倍。
下面的圖表分類總結了實驗結果。總的來說,使用Alluxio性能提升最大的是q9(7.1倍),提升最小的是q39a(1倍——沒有區別)。
在10個節點的計算集群情況下,當從地理上分隔的集群中訪問數據時,運行所有查詢的峰值網絡帶寬使用保持在2Gbps以下。使用AWS骨干網絡時,網絡帶寬不是瓶頸。隨著計算集群規模的增大,網絡帶寬使用也會增加。在大型集群中,由于直連網絡帶寬也存在限制,因此如果不使用Alluxio,網絡帶寬很可能成為性能瓶頸。
當數據無縫緩存到本地的Alluxio群集中時,使用Alluxio可以看到的大多數性能提升可以通過訪問元數據和數據的延遲差異來解釋。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。