[發明專利]一種解決Spark數據傾斜方法及系統在審
| 申請號: | 201710379913.2 | 申請日: | 2017-05-25 |
| 公開(公告)號: | CN107220123A | 公開(公告)日: | 2017-09-29 |
| 發明(設計)人: | 趙波 | 申請(專利權)人: | 鄭州云海信息技術有限公司 |
| 主分類號: | G06F9/50 | 分類號: | G06F9/50 |
| 代理公司: | 北京集佳知識產權代理有限公司11227 | 代理人: | 羅滿 |
| 地址: | 450018 河南省鄭州市*** | 國省代碼: | 河南;41 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 解決 spark 數據 傾斜 方法 系統 | ||
技術領域
本發明涉及大數據計算領域,特別涉及一種解決Spark數據傾斜方法及系統。
背景技術
Apache Spark是一個快速高效的集群計算系統。Spark很好地利用了Hadoop和Mesos的基礎設施。借Hadoop之勢與Hadoop無縫結合,但是相比于Hadoop MapReduce具有更高的計算速度,同時Spark支持內存計算、多迭代批量處理、即席查詢、流處理和圖計算等多種范式。
對Spark/Hadoop這樣的大數據系統來講,數據量大并不可怕,可怕的是數據傾斜。數據傾斜指的是,并行處理的數據集中,某一部分(如Spark或Kafka的一個Partition)的數據顯著多于其它部分,從而使得該部分的處理速度成為整個數據集處理的瓶頸,例如,絕大多數task執行得都非常快,但個別task執行極慢,如,總共有1000個task,997個task都在1分鐘之內執行完了,但是剩余兩三個task卻要一兩個小時。
因此,如何解決Spark中數據傾斜,成為了難點。
發明內容
有鑒于此,本發明的目的在于提供一種解決Spark數據傾斜方法及系統,以解決Spark中數據傾斜,提高運行速度。其具體方案如下:
一種解決Spark數據傾斜方法,包括:
將超過預設數據量的數據集按照預設分割方法進行分割處理,得到數據塊集;
將所述數據塊集中的數據塊分配給Redtask集中滿足預設條件的Redtask,得到中間結果集;
將中間結果集分配給所述Redtask集中的一個Redtask中進行匯總處理,得到處理結果。
可選的,所述將超過預設數據量的數據集按照預設分割方法進行分割處理的過程,包括:
將超過所述預設數據量的所述數據集按照預設數據塊數據量進行分割處理。
可選的,所述將超過預設數據量的數據集按照預設分割方法進行分割處理的過程,包括:
將超過所述預設數據量的所述數據集按照預設的數據塊數量進行分割處理。
可選的,所述將超過預設數據量的數據集按照預設分割方法進行分割處理的過程,包括:
將超過所述預設數據量的所述數據集按照滿足所述預設條件的Redtask數量進行分割處理。
可選的,所述將所述數據塊集中的數據塊分配給Redtask集中滿足預設條件的Redtask的過程,包括:
將所述數據塊集中的數據塊平均分配給Redtask集中滿足所述預設條件的Redtask。
可選的,所述匯總處理的過程,包括:
利用中間結果集中每個中間結果的key,將具有相同key的中間結果進行匯總。
本發明還相應公開了一種解決Spark數據傾斜系統,包括:
分割模塊,用于將超過預設數據量的數據集按照預設分割方法進行分割處理,得到數據塊集;
分配模塊,用于將所述數據塊集中的數據塊分配給Redtask集中滿足預設條件的Redtask,得到中間結果集;
匯總模塊,用于將中間結果集分配給所述Redtask集中的一個Redtask中進行匯總處理,得到處理結果。
可選的,所述分割模塊,具體用于將超過所述預設數據量的所述數據集按照預設數據塊數據量進行分割處理。
可選的,所述分配模塊,具體用于將所述數據塊集中的數據塊平均分配給Redtask集中滿足所述預設條件的Redtask,得到中間結果集。
可選的,所述匯總模塊,具體用于將中間結果集分配給所述Redtask集中的一個Redtask中,利用中間結果集中每個中間結果的key,將具有相同key的中間結果進行匯總,得到處理結果。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于鄭州云海信息技術有限公司,未經鄭州云海信息技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710379913.2/2.html,轉載請聲明來源鉆瓜專利網。
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





