hadoop 效能調優
環境:4臺suse 各 4g 記憶體 1t硬碟 4核cpu
3臺 redhat 各 2g記憶體 500g 硬碟 雙核cpu
由於沒有真正意義上的伺服器,所以當執行大量map reduce任務的時候 map 執行速度還可以接受 但reduce 速度 特別慢,所以開發
對集群進行調優。
hadoop集群調優分兩個方面,map和reduce
map調優:
map 任務執行會產生中間資料,但這些中間結果並沒有直接io到磁碟上,而是先儲存在快取(buffer)中,並在快取中進行一些預排序來優化整個map的效能,該儲存map中間資料的快取預設大小為100m,由io.sort.mb 引數指定.這個大小可以根據需要調整。當map任務產生了非常大的中間資料時可以適當調大該引數,使快取能容納更多的map中間資料,而不至於大頻率的io磁碟,當系統效能的瓶頸在磁碟io的速度上(由於我的是pc 機,因此磁碟讀寫速度很慢,相信大多數的人都是這樣的情況,可以交流),可以適當的調大此引數來減少頻繁的io帶來的效能障礙.
由於map任務執行時中間結果首先儲存在快取中,但是不是當整個快取被填滿時才將其寫入磁碟,這樣會增加map任務的等待,所以預設當 快取的使用量達到80%(或0.8)的時候就開始寫入磁碟,這個過程叫做spill(也叫做磁碟溢位),進行spill的快取大小可以通過io.sort.spill.percent 引數調整,這個引數可以影響spill的頻率.進而可以影響io的頻率.當map任務計算成功完成之後(也可以不成功單個的map)如果map任務有輸出.則會產生多個spill。這些檔案就是map的輸出結果,但
是此時map任務雖然產生了輸出結果,但是切記此時map任務仍然沒有退出作業,接下來map必須將些spill進行合併,這個過程叫做merge, merge過程是並行處理spill的,每次並行多少個spill是由引數io.sort.factor指定的預設為10個.但是當spill的數量非常大的時候,merge一次並行執行的spill仍然為10個,這樣仍然會頻繁的io處理,因此適當的調大每次並行處理的spill數有利於減少merge數因此可以影響map的效能。當map輸出中間結果的時候也可以配置壓縮,這個在前面的文章中我提到過,這裡不再贅述了.
reduce調優:
據總結:總之map reduce調優的乙個原則就是 給shuffle 盡量多的記憶體,給中間結果多些記憶體,給並行任務數調大(當然一些都得因人而異,根據自己集群及網路的實際情況來調優,調優的時候可以根據工具ganglia來檢視效果)
Hadoop效能調優
最近看了些hadoop效能調優的文章,現總結如下。1 關於集群物理機器 配置noatime選項。配置方式 etc fstab 相關知識點 atime,ctime,mtime。對於datanode tasktracker機器,不需要配置raid或lvm。盡量避免使用到tasktracker的swap。...
調優 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命令將...