5.1 小文件 大數據這個概念似乎意味着處理GB級乃至更大的文件。實際上大數據可以是大量的小文件。比如說,日志文件通常增長到MB級時就會存檔。這一節中將介紹在HDFS中有效地處理小文件的技術。 技術24 使用Avro存儲多個小文件假定有一個項目akin在google上搜索圖片,並將 ...
. 基於壓縮的高效存儲 僅包括技術 ,和技術 數據壓縮可以減小數據的大小,節約空間,提高數據傳輸的效率。在處理文件中,壓縮很重要。在處理Hadoop的文件時,更是如此。為了讓Hadoop更高效處理文件,就需要選擇一個合適的壓縮編碼器,加快作業運行,增加集群的數據存儲能力。 技術 為待處理數據選擇正確的壓縮編碼器在HDFS上使用壓縮並不像ZFS文件系統上那樣透明,特別是在處理那些可分塊的壓縮文件時 ...
2014-03-21 06:28 0 3537 推薦指數:
5.1 小文件 大數據這個概念似乎意味着處理GB級乃至更大的文件。實際上大數據可以是大量的小文件。比如說,日志文件通常增長到MB級時就會存檔。這一節中將介紹在HDFS中有效地處理小文件的技術。 技術24 使用Avro存儲多個小文件假定有一個項目akin在google上搜索圖片,並將 ...
4.3 抽樣(Sampling) 用基於MapReduce的程序來處理TB級的數據集,要花費的時間可能是數以小時計。僅僅是優化代碼是很難達到良好的效果。 在開發和調試代碼的時候,沒有必要處理整個數據集。但如果在這種情況下要保證數據集能夠被正確地處理,就需要用到抽樣了。抽樣是統計學中的一個方法 ...
4.1.2 復制連接(Replication join) 復制連接是map端的連接。復制連接得名於它的具體實現:連接中最小的數據集將會被復制到所有的map主機節點。復制連接有一個假設前提:在被連接的數據集中,有一個數據集足夠小到可以緩存在內存中。 如圖4.5所示,MapReduce復制連接工作 ...
4.2 排序(SORT) 在MapReduce中,排序的目的有兩個: MapReduce可以通過排序將Map輸出的鍵分組。然后每組鍵調用一次reduce。 在某些需要排序的特定場景中,用戶可以將作業(job)的全部輸出進行總體排序。 例如:需要了解前N個最受歡迎的用戶或網頁 ...
6.4.3 優化洗牌(shuffle)和排序階段 洗牌和排序階段都很耗費資源。洗牌需要在map和reduce任務之間傳輸數據,會導致過大的網絡消耗。排序和合並操作的消耗也是很顯著的。這一節將介紹一系列的技術來緩解洗牌和排序階段的消耗。 技術46 規避使用reduce Reduce在用 ...
4.1.3 半連接(Semi-join) 假設一個場景,需要連接兩個很大的數據集,例如,用戶日志和OLTP的用戶數據。任何一個數據集都不是足夠小到可以緩存在map作業的內存中。這樣看來,似乎就不能使 ...
6.4.4 減小數據傾斜的性能損失 數據傾斜是數據中的常見情況。數據中不可避免地會出現離群值(outlier),並導致數據傾斜。這些離群值會顯著地拖慢MapReduce的執行。常見的數據傾斜有以下幾類: 數據頻率傾斜——某一個區域的數據量要遠遠大於其他區域。 數據大小傾斜——部分記錄 ...
6.1 測量MapReduce和環境的性能指標 性能調優的基礎系統的性能指標和實驗數據。依據這些指標和數據,才能找到系統的性能瓶頸。性能指標和實驗數據要通過一系列的工具和過程才能得到。 這部分里,將介紹Hadoop自帶的工具和性能指標。還將捎帶介紹性能監控工具。 6.1.1 作業 ...