6.4.4 減小數據傾斜的性能損失 數據傾斜是數據中的常見情況。數據中不可避免地會出現離群值(outlier),並導致數據傾斜。這些離群值會顯著地拖慢MapReduce的執行。常見的數據傾斜有以下幾類: 數據頻率傾斜——某一個區域的數據量要遠遠大於其他區域。 數據大小傾斜——部分記錄 ...
. . 優化洗牌 shuffle 和排序階段 洗牌和排序階段都很耗費資源。洗牌需要在map和reduce任務之間傳輸數據,會導致過大的網絡消耗。排序和合並操作的消耗也是很顯著的。這一節將介紹一系列的技術來緩解洗牌和排序階段的消耗。 技術 規避使用reduce Reduce在用於連接數據集的時候將會產生大量的網絡消耗。 問題 需要考慮在MapReduce規避reduce的使用。 方案 通過將Map ...
2014-03-15 06:39 0 3158 推薦指數:
6.4.4 減小數據傾斜的性能損失 數據傾斜是數據中的常見情況。數據中不可避免地會出現離群值(outlier),並導致數據傾斜。這些離群值會顯著地拖慢MapReduce的執行。常見的數據傾斜有以下幾類: 數據頻率傾斜——某一個區域的數據量要遠遠大於其他區域。 數據大小傾斜——部分記錄 ...
6.1 測量MapReduce和環境的性能指標 性能調優的基礎系統的性能指標和實驗數據。依據這些指標和數據,才能找到系統的性能瓶頸。性能指標和實驗數據要通過一系列的工具和過程才能得到。 這部分里,將介紹Hadoop自帶的工具和性能指標。還將捎帶介紹性能監控工具。 6.1.1 作業 ...
6.2 診斷性能瓶頸 有的時候作業的執行時間會長得驚人。想靠猜也是很難猜對問題在哪。這一章中將介紹如何界定問題,找到根源。涉及的工具中有的是Hadoop自帶的,有的是本書提供的。 系統監控和Hadoop任務 在Hadoop的0.20.x版本中,並沒有提供 ...
的數據分析工作。 在這一節中,有兩個場景需要對MapReduce的排序行為進行優化。 次排序(S ...
4.3 抽樣(Sampling) 用基於MapReduce的程序來處理TB級的數據集,要花費的時間可能是數以小時計。僅僅是優化代碼是很難達到良好的效果。 在開發和調試代碼的時候,沒有必要處理整個數據集。但如果在這種情況下要保證數據集能夠被正確地處理,就需要用到抽樣了。抽樣是統計學中的一個方法 ...
調優概述 大多數Spark作業的性能主要就是消耗在了shuffle環節,因為該環節包含了大量的磁盤IO、序列化、網絡數據傳輸等操作。因此,如果要讓作業的性能更上一層樓,就有必要對shuffle過程進行調優。但是也必須提醒大家的是,影響一個Spark作業性能的因素 ...
4.2.2 總排序(Total order sorting) 有的時候需要將作業的的所有輸出進行總排序,使各個輸出之間的結果是有序的。有以下實例: 如果要得到某個網站中最受歡迎的網址(URL),就需要根據某種受歡迎的指標來對網址進行排序。 如果要讓最活躍的用戶能夠看到某張表,就需要 ...
一、數據傾斜發生的原理 原理:在進行shuffle的時候,必須將各個節點上相同的key拉取到某個節點上的一個task來進行處理,比如按照key進行聚合或join等操作。此時如果某個key對應的數據量特別大的話,就會發生數據傾斜。數據傾斜只會發生在shuffle過程中。常用的並且可能會觸發 ...