最近看了些hadoop效能調優的文章,現總結如下。
1、關於集群物理機器:
配置noatime選項。(配置方式:/etc/fstab)(相關知識點:atime,ctime,mtime。)
對於datanode/tasktracker機器,不需要配置raid或lvm。
盡量避免使用到tasktracker的swap。
磁碟問題會導致task重試,降低效率。在blacklist中的node大多是因為磁碟問題,smart monitor 在磁碟資源。
2、使用資料壓縮配置:
在mapred的中間結果(map輸出)或有後續任務的mapred任務的輸出,使用壓縮配置選項。(mapred.compress.map.output,mapred.output.compress)
增加一部分的cpu開銷,減少io開銷(包括網路io和磁碟io)
3、合理的設定task的數目:
任務的input過大時,split的數量很多,會導致過多的map task。可以通過加大hdfs block size來減小maptask的數量。(hadoop distcp -ddfs.block.size=$[256*1024*1024] /path/to/inputdata /path/to/inputdata-with-largeblocks
)
如果任務數多且小,比如在一分鐘之內完成,減少task數量以減少任務初始化的消耗。可以通過配置jvm重用選項減少task的消耗。(
mapred.job.reuse.jvm.num.tasks表示乙個job的task可利用相同的jvm順序執行多少個)
4、合理的利用combiner:
首先,從業務場景出發,reduce的結果應該不受影響。其次,combiner所帶來的效能消耗要遠小於網路傳輸和排序所帶來的消耗。這個的判斷可以從幾個方面來:shuffle的資料量;spill的counter。(理解shuffle sort的過程)
5、使用合理的資料型別:
非文字型別的資料可選擇非text型別的二進位制writable型別,避免類如數值型別轉換到string的cpu效能消耗。可根據自己的業務特點定義高效的writable型別。
採用intwritable或者longwritable時,若數值大小差異很大,可以採用變長的型別,減少磁碟和io消耗。
6、在map或reduce中注意重用writable物件
hadoop 效能調優
hadoop 效能調優 環境 4臺suse 各 4g 記憶體 1t硬碟 4核cpu 3臺 redhat 各 2g記憶體 500g 硬碟 雙核cpu 由於沒有真正意義上的伺服器,所以當執行大量map reduce任務的時候 map 執行速度還可以接受 但reduce 速度 特別慢,所以開發 對集群進行...
調優 Nginx效能調優
一.nginx優化配置 1.主配置檔案優化 注 部分配置詳解 worker processes 8 nginx程序數,建議按照cpu數目來指定,一般為它的倍數。worker cpu affinity 00000001 00000010 00000100 00001000 00010000 00100...
Hadoop調優總結
size large 1.管理員角度主要在四方面進行調優 size 1 硬體選擇 2 作業系統引數調優 3 jvm引數調優 4 hadoop引數調優。size large 2.作業系統調優 size 1 增大同時開啟的檔案描述符合網路連線上限。管理員在啟動hadoop集群時,應使用ulimit命令將...