溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何在混合云架構(gòu)中高效運行Presto

發(fā)布時間:2021-12-22 13:38:10 來源:億速云 閱讀:198 作者:柒染 欄目:大數(shù)據(jù)

如何在混合云架構(gòu)中高效運行Presto,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

將SQL工作負載從完全的本地環(huán)境遷移到云環(huán)境中有許多好處,包括降低資源競爭、通過按需購買計算資源來降低費用。當Presto的數(shù)據(jù)存儲在HDFS中時,由于Presto的架構(gòu)允許存儲和計算的組件獨立操作,在云環(huán)境中的計算與本地的存儲之間的分離是顯而易見的。在云上通過在Presto檢索本地的HDFS數(shù)據(jù)這樣的混合環(huán)境里面,一個關(guān)鍵的問題是兩個集群之間的網(wǎng)絡(luò)延遲。

這個關(guān)鍵的瓶頸嚴重限制了所有工作負載的性能,因為其大部分時間都花在了可能位于地理位置不同的網(wǎng)絡(luò)之間傳輸請求的數(shù)據(jù)上。結(jié)果,大多數(shù)公司將其數(shù)據(jù)復制到云環(huán)境中并維護該數(shù)據(jù)副本,也稱為Lift and Shift。有合規(guī)性和數(shù)據(jù)主權(quán)要求的公司甚至可能阻止組織將數(shù)據(jù)復制到云中。這種方法不可擴展,需要付出大量的人工才能獲得合理的結(jié)果。下面介紹了Alluxio充當數(shù)據(jù)編排層,以幫助將數(shù)據(jù)高效地提供給Presto,而不是直接查詢遠程的HDFS集群或?qū)?shù)據(jù)的本地化副本手動提供給云集群中的Presto。

采用Alluxio和Presto的混合云架構(gòu)

在以下架構(gòu)圖中,Presto和Alluxio進程都位于云集群中。就Presto而言,它正在查詢數(shù)據(jù)并將其寫入Alluxio,就好像Alluxio是位于同一位置的HDFS集群一樣。當Alluxio收到數(shù)據(jù)請求時,最初會從遠程HDFS集群中獲取數(shù)據(jù),但后續(xù)請求將直接從其緩存中獲取。當Presto發(fā)送數(shù)據(jù)以將其持久化到存儲中時,Alluxio會將數(shù)據(jù)異步寫入HDFS,從而使Presto工作負載免于等待遠程寫入完成的麻煩。在讀取和寫入兩種情況下,除了初始讀取外,Presto工作負載都能夠以與HDFS集群在相同的網(wǎng)絡(luò)中的性能運行(即使不是更快)。請注意,除了部署和配置Alluxio以及在Presto和Alluxio之間建立連接之外,不需要其他配置或其他手動操作即可維護混合環(huán)境。

如何在混合云架構(gòu)中高效運行Presto



     

基準測試性能


     

為了進行基準測試,我們對地理上分離的Hive和HDFS集群中的數(shù)據(jù)運行SQL查詢。

如何在混合云架構(gòu)中高效運行Presto

本節(jié)中用于實驗的混合云環(huán)境包括位于不同AWS區(qū)域的兩個Amazon EMR集群。因為兩個集群在地理位置上分散,所以集群之間存在明顯的網(wǎng)絡(luò)延遲。  VPC對等  (見參考鏈接2)用于創(chuàng)建VPC連接,以允許通過全局AWS骨干網(wǎng)在兩個VPC之間進行通信,而不會出現(xiàn)帶寬瓶頸。如果讀者使用AWS作為云提供商,那么讀者可以按照  白皮書中的教程  (見參考鏈接3)來重現(xiàn)基準測試結(jié)果。
我們將行業(yè)標準  TPC-DS  (見參考鏈接4)基準中的數(shù)據(jù)和查詢用于決策支持系統(tǒng),該系統(tǒng)可檢查大量數(shù)據(jù)并回答業(yè)務(wù)問題??梢詫⒉樵兎譃橐韵聨最悾ǜ鶕?jù)此庫中的可視化):報告,交互式分析和深度分析。

使用Alluxio,我們?yōu)樗蠺PC-DS查詢收集兩種數(shù)據(jù),分別表示為Cold和Warm。

  • Cold是指在查詢執(zhí)行前,數(shù)據(jù)沒有加載到Alluxio的情況。在這種情況下,Alluxio在查詢執(zhí)行時,按需從HDFS中拉去數(shù)據(jù)。
  • Warm是指在Cold類查詢執(zhí)行后數(shù)據(jù)已經(jīng)加載到Alluxio中的情況。后續(xù)的查詢訪問相同的數(shù)據(jù)不需要訪問HDFS。

使用HDFS, 我們也收集了兩種數(shù)據(jù),分別表示為Local和Remote

  • Local是指Presto和HDFS在同一個區(qū)域中。這個數(shù)據(jù)表示的是計算和數(shù)據(jù)都在本地(而不需要拉到云環(huán)境中)的性能。

  • Remote是指Presto從另一個區(qū)域的存儲端讀取數(shù)據(jù)。
TPC-DS 數(shù)據(jù)規(guī)格  

如何在混合云架構(gòu)中高效運行Presto

EMR實例規(guī)格

如何在混合云架構(gòu)中高效運行Presto

我們對比了Presto使用Alluxio(包含Code和Warm)和直接讀取HDFS(包含Local和Remote)的性能?;鶞蕼y試顯示,使用Alluxio并且數(shù)據(jù)緩存在Alluxio中與直接從遠程讀取HDFS相比,平均性能提升是原來的3倍。

如何在混合云架構(gòu)中高效運行Presto

下面的圖表分類總結(jié)了實驗結(jié)果??偟膩碚f,使用Alluxio性能提升最大的是q9(7.1倍),提升最小的是q39a(1倍——沒有區(qū)別)。

如何在混合云架構(gòu)中高效運行Presto

如何在混合云架構(gòu)中高效運行Presto

如何在混合云架構(gòu)中高效運行Presto

在10個節(jié)點的計算集群情況下,當從地理上分隔的集群中訪問數(shù)據(jù)時,運行所有查詢的峰值網(wǎng)絡(luò)帶寬使用保持在2Gbps以下。使用AWS骨干網(wǎng)絡(luò)時,網(wǎng)絡(luò)帶寬不是瓶頸。隨著計算集群規(guī)模的增大,網(wǎng)絡(luò)帶寬使用也會增加。在大型集群中,由于直連網(wǎng)絡(luò)帶寬也存在限制,因此如果不使用Alluxio,網(wǎng)絡(luò)帶寬很可能成為性能瓶頸。

當數(shù)據(jù)無縫緩存到本地的Alluxio群集中時,使用Alluxio可以看到的大多數(shù)性能提升可以通過訪問元數(shù)據(jù)和數(shù)據(jù)的延遲差異來解釋。

如何在混合云架構(gòu)中高效運行Presto



     


看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI