[發明專利]一種hive文件合并的方法和裝置有效
| 申請號: | 202010725466.3 | 申請日: | 2020-07-24 |
| 公開(公告)號: | CN112035057B | 公開(公告)日: | 2022-06-21 |
| 發明(設計)人: | 梅綱;高東升;馮源;胡書能;陳琦 | 申請(專利權)人: | 武漢達夢數據庫股份有限公司 |
| 主分類號: | G06F3/06 | 分類號: | G06F3/06;G06F16/17 |
| 代理公司: | 深圳市六加知識產權代理有限公司 44372 | 代理人: | 向彬 |
| 地址: | 430000 湖北省武漢市東湖新技術開*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 hive 文件 合并 方法 裝置 | ||
1.一種hive文件合并的方法,其特征在于,所述方法包括:
獲取一個hive表的元數據定義的目錄下的所有文件作為需合并的文件;
按照需合并的文件的總容量大小和預設的大文件最大容量估算合并文件時需要的桶的數量;
根據估算所得的桶的數量建立相應數量的桶;
將需合并的文件按照每個文件的容量從大到小依次放入空閑容量最大,且放入文件后總容量不超過預設的大文件最大容量的桶中,直至所有文件都放入桶中;
將放入每個桶內的文件分別合并為一個大文件。
2.根據權利要求1所述的hive文件合并的方法,其特征在于,所述將需合并的文件按照每個文件的容量從大到小依次放入空閑容量最大的桶中,具體包括:
將需合并的文件按照每個文件的容量從大到小排序,放入文件列表中;
將桶按照空閑容量的大小從大到小排序,放入桶列表中;
取出桶列表中的第一個桶,取出文件列表中的第一個文件,將取出的文件放入取出的桶中;
計算取出的桶的空閑容量,根據空閑容量把取出的桶插入桶列表中合適的排序位置,保持桶列表中的桶按照空閑容量的大小從大到小排序。
3.根據權利要求2所述的hive文件合并的方法,其特征在于,所述根據空閑容量把取出的桶插入桶列表中合適的排序位置,具體包括:
按照桶列表的順序,將取出的桶的空閑容量依次和桶列表中每個桶的空閑容量比較;
查找桶列表中最后一個空閑容量大于取出的桶的空閑容量的桶,將取出的桶插入查找到的桶之后。
4.根據權利要求1所述的hive文件合并的方法,其特征在于,所述估算合并文件時需要的桶的數量具體包括:
獲取需合并的文件的總容量大小;
根據需合并的文件的總容量大小和預設的大文件最大容量估算合并后的大文件的數量,合并文件時需要的桶的數量與合并后的大文件的數量相同。
5.根據權利要求1所述的hive文件合并的方法,其特征在于:所述預設的大文件最大容量大于一個系統數據塊的容量。
6.根據權利要求1所述的hive文件合并的方法,其特征在于,所述將放入每個桶內的文件分別合并為一個大文件,具體包括:以map reduce job方式提交桶列表中所有的桶到Hadoop下進行文件合并,每個reduce任務中進行至少一個桶內的文件的合并。
7.根據權利要求6所述的hive文件合并的方法,其特征在于,所述每個reduce任務中進行至少一個桶內的文件的合并,具體包括:
將桶列表中的桶按照空閑容量從小到大排序;
取出桶列表中的第一個桶,放入已放入的桶的總容量最小的reduce分區中,直至所有桶都放入對應的reduce分區中。
8.根據權利要求1所述的hive文件合并的方法,其特征在于,所述將放入每個桶內的文件分別合并為一個大文件之前,還包括:移除僅放入一個需合并的文件的桶。
9.根據權利要求1所述的hive文件合并的方法,其特征在于:
所述將放入每個桶內的文件分別合并為一個大文件后,刪除原有的需合并的文件。
10.一種hive文件合并的裝置,其特征在于:
包括至少一個處理器和存儲器,所述至少一個處理器和存儲器之間通過數據總線連接,所述存儲器存儲能被所述至少一個處理器執行的指令,所述指令在被所述處理器執行后,用于完成權利要求1-9任一所述的hive文件合并的方法。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于武漢達夢數據庫股份有限公司,未經武漢達夢數據庫股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010725466.3/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:白光干涉系統
- 下一篇:一種基于區塊鏈的供應鏈管控方法、設備及介質





