五 資料組織模式 2) 分割槽模式

2022-03-15 04:10:49 字數 932 閱讀 8062

分割槽模式是將記錄進行分類(即分片、分割槽或分箱),他不關心記錄的順序

目的:將資料集中相似的資料記錄成不同的、更小的資料。

適用範圍:

必須提前知道有多少個分割槽。  比如按天、按月、年等等。

結構:資料是通過分割槽器進行分割槽的。  所以需要自定義分割槽器(partitioner)函式來確定每條記錄應該被分在那個分割槽。

結果:每個分割槽將對應乙個輸出的 part 檔案。

由於每個類別都將被寫入到乙個大檔案中,因此採用基於塊壓縮的 sequencefile 儲存資料是一種很好的方式,同事該方法也被證明是 hadoop 中最有效、最易於使用的資料格式。

已知應用:

按連續值剪裁分割槽

例如:日期或者數值區間

按類別剪裁分割槽

例如:國家區域、**區號、語言形式等等。

分片:如果整個系統中有某個子系統的資料是已經劃分好的。 如不同的磁碟,那麼就需要將記錄劃分到已存在的分片中。

效能分析:

熱點問題, 熱點將是乙個大問題,需要單獨考慮。  如:  4t 檔案需要重新分割槽 分四組 (4個reduce)方便統計。那麼其中一組佔3t  這將引發 單點 reduce 的熱點問題和資料傾斜。  可以考慮二次分割槽。或是其中一組進行打散 變為 (3組 1t + n組 3t 的隨機分割槽。 ) 而這樣做並不影響對分割槽以後的處理, 唯一的影響是將來分析時,需要將分割槽的檔案全部引入即可

分割槽示例:

作業需要配置成使用自定義分割槽器,同時分割槽器也要重寫。 

獲取每條輸入記錄後的 分割槽屬性。 並將分割槽屬性作為key。 然後整條記錄作為 v 。 在 reduce 階段此 k 將被忽略。 (因為木有用了嘛)

partitioner.getpartitioner():

reduce.reduce()  只輸出即可。 輸出迴圈的 v。

來自為知筆記(wiz)

五 資料組織模式 4)全排序 混排。

前面講的 分割槽 分箱模式 都是不關心資料的順序。接下來 全排序 混排序模式 關心的是資料按照指定鍵進行並行排序。全排序解釋 排序在順序結構程式中容易實現,但是在mapreduce 中,或者說在並行程式設計中不易實現。這是典型的 分治法 每個 reduce 將按照鍵對他的資料排序,但這種排序並不是全...

DB2 分割槽表增加分割槽

最近,需要在db2的分割槽表中增加新的分割槽,用於儲存資料,因此,就研究了db2表的分割槽機制。現在總結,實現的方式共有三種,分別是 1 建立臨時表,將原表資料匯入臨時表,之後將原表重建,擴大分割槽 2 通過alter table tab name add partition,為表增加分割槽 3 建...

關於資料訪問模式(五) Layers模式

layers 層 模式,我想大家應該都不會陌生了。不管是硬體驅動程式 tcp ip協議,還是j2ee應用軟體的架構,層 的強大之處在 呢?我們是否真的了解層的劃分呢?我們面對乙個複雜問題的時候,都會想著將這個問題化整為零,分為乙個個子問題,然後逐個擊破。相應 的,處理這樣複雜問題的軟體也會進行劃分。...