[發明專利]一種提高Spark SQL的查詢效率的方法有效
| 申請號: | 201810351379.9 | 申請日: | 2018-04-17 |
| 公開(公告)號: | CN108710640B | 公開(公告)日: | 2021-11-12 |
| 發明(設計)人: | 宋愛波;萬雨桐 | 申請(專利權)人: | 東南大學 |
| 主分類號: | G06F16/2455 | 分類號: | G06F16/2455 |
| 代理公司: | 南京眾聯專利代理有限公司 32206 | 代理人: | 許小莉 |
| 地址: | 210096 *** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 提高 spark sql 查詢 效率 方法 | ||
本發明公開了一種提高Spark SQL的查詢效率的方法。本發明包括步驟S1:構建查詢預分析模塊,通過估算模型,計算Shuffle產生的中間數據的大小,從而計算出用于緩存所述中間數據的中間數據緩存層的總大?。徊襟ES2:根據步驟1計算出的中間數據緩存層的總大小,結合集群中每個結點輸入數據的分布情況,通過緩存層分配模塊為每個結點設置合理的內存空間大小。本發明能有效地通過Shuffle中間數據緩存處理方法解決Spark SQL查詢中磁盤I/O開銷較高的問題。
技術領域:
本發明涉及一種提高Spark SQL的查詢效率的方法,具體涉及一種通過Shuffle操作中間數據緩存的處理提高Spark SQL的查詢效率的方法。
背景技術:
隨著互聯網的不斷發展與普及,企業、政府機關,科研機構等每天產生的數據量是可觀的。例如,淘寶每天產生的數據量達到7T,百度每天需要處理的數據量達到了100PB,處理大數據的現實需求促進了云計算領域很多的學術研究。Apache Spark是一個基于內存的計算框架,它以彈性分布式數據集RDD(Resilient Distributed Datasets)的實現為核心,實現數據的分布與容錯。Spark是一個高速而通用的大數據處理引擎,由加州大學伯克利分校AMP (Algorithms,Machines,and People Lab)實驗室團隊使用語言Scala開發。SparkSQL從基于 Hive的Shark開發而來,是一種用于處理結構化數據的Spark組件。
Spark在執行一個作業的過程中,會首先為該作業生成一個有向無環圖(DirectedAcyclic Graph,DAG)來記錄所進行的操作。其次,DAG圖將會根據RDD間的依賴關系被劃分成若干個階段,同一個階段中的RDD之間的依賴關系均為窄依賴,連接兩個階段的RDD之間的依賴關系為寬依賴。在發生窄依賴時,數據在內存中的多個RDD操作之間進行傳遞,不會發生磁盤I/O開銷。但是在發生寬依賴時,由于需要讀取所有的父RDD的內容并做連接操作,該操作開銷較大,如果都在內存中進行容易內存溢出。因此Spark默認在發生寬依賴時,會把每個階段生成的中間數據寫到磁盤,該過程稱為Shuffle。而Spark Shuffle階段會產生大量的中間數據,圖1是Spark SQL運行一個簡單查詢產生中間文件的個數,最多時產生了8000 個文件,并且波動較大從而造成了大量的隨機磁盤I/O開銷,該開銷是阻礙Spark SQL執行效率的主要因素之一。
發明內容
本發明的目的是提供一種提高Spark SQL的查詢效率的方法,通過Shuffle中間數據緩存處理方法解決Spark SQL查詢中磁盤I/O開銷較高的問題。
上述的目的通過以下技術方案實現:
一種提高Spark SQL的查詢效率的方法,該方法包括如下步驟:
步驟S1:構建查詢預分析模塊,通過估算模型,計算Shuffle產生的中間數據的大小,從而計算出用于緩存所述中間數據的中間數據緩存層的總大??;
步驟S2:根據步驟1計算出的中間數據緩存層的總大小,結合集群中每個結點輸入數據的分布情況,通過緩存層分配模塊為每個結點設置合理的內存空間大小。
進一步地,步驟S1中所述的計算Shuffle產生的中間數據的大小的具體方法是:查詢預分析模塊通過解析用戶輸入的查詢語句得到Spark下該作業的工作流,根據估算模型計算工作流中每個階段生成的中間數據大小。
進一步地,步驟S2中在獲得緩存層的總大小后,緩存層分配模塊統計輸入數據的每一個數據塊在集群中的分布情況,按比例為不同的結點開辟不同大小的內存。
進一步地,所述工作流包括兩個階段,分別是進行投影、選擇、聚集操作的階段,和進行連接操作的階段,每個階段產生的中間數據的大小之后,通過求和即可得到緩存層的總大小Mtotal。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于東南大學,未經東南大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810351379.9/2.html,轉載請聲明來源鉆瓜專利網。





