hadoop運維人員,負責為hadoop提供乙個高效和可靠的作業執行環境,很多時候,需要從全域性出發,通過調整一些關鍵引數以提供系統的效能和吞吐量.
總體上看,hadoop運維需要從硬體選擇,作業系統引數調優,jvm引數調優,hadoop引數調優四個方面著手進行調優
1.硬體選擇
在硬體環境中,應著重提高master機的物理效能(使用更好的cpu和更大的記憶體等等).
hadoop自身是主從架構,其中的namenode機負責全域性的元資料儲存,心跳以及訪問入口等等,其重要性遠遠大於slayer機
2.作業系統調優
2.1 增大同時開啟的檔案描述符和網路連線上限
在hadoop集群中,由於涉及的作業和任務數非常多,對於某個節點,由於作業系統在檔案描述符和網路連線的限制,大量的檔案讀寫和網路請求可能導致任務失敗.
因此hadoop運維應該在啟動hadoop集群前,將檔案描述符和網路連線設為乙個合理的值
檔案描述符ulimit -n
使用者最大程序 nproc
2.2 關閉swap分割槽
在linux中,如果乙個程序記憶體不足,那麼它會將部分記憶體資料寫到暫時寫到磁碟上,當需要時,再將磁碟資料置換到記憶體中.
但在hadoop中,使用者是可以自主每個作業的資料量以及任務執行需要的各種緩衝區大小的,這時swap分割槽,會大大降低程序執行效率的
2.3 設定合理的預讀緩衝區大小
磁碟i/o效能的發展遠遠滯後於cpu和記憶體,因而成為現代計算機系統的乙個主要瓶頸。預讀可以有效地減少磁碟的尋道次數和應用程式的i/o等待時間,是改進磁碟讀i/o效能的重要優化手段之一。
管理員可使用linux命令blockdev設定預讀取緩衝區的大小,以提高hadoop中大檔案順序讀的效能。當然,也可以只為hadoop系統本身增加預讀緩衝區大小
2.4 檔案系統選擇與配置
hadoop的io效能,很大程度依賴hdfs,或者說本地檔案的讀寫效能,linux中有多種檔案系統可供選擇,比如ext3和ext4,不同的檔案系統效能有一定的差別
2.5 110排程器選擇
主流的linux發行版自帶了很多可供選擇的i/o排程器。在資料密集型應用中,不同的i/o排程器效能表現差別較大,管理員可根據自己的應用特點啟用最合適的i/o排程器
3.jvm調優
由於hadoop中的每個服務和任務均會執行在乙個單獨的jvm中,因此,jvm的一些重要引數也會影響hadoop效能。管理員可通過調整jvm flags和jvm垃圾**機制提高hadoop效能
Hadoop運維 hive執行調優 rcFile
最近發現hive庫中的資料都是沒有壓縮的,每次執行超級慢,現在調優成rcfile格式,具體流程如下 1 建表時新增語句 stored as rcfile 2 在sql語句中加入配置引數 set hive.exec.compress.output true set mapred.output.comp...
hadoop運維彙總篇
在實際的生產環境運維乙個hadoop集群有一些必須要關注的事情。1 namenode的高可靠性 2 節點配置與管理 3 mapreduce的記憶體配置 4 啟用trash 首要的是保證資料安全可靠,其次再去考慮儲存效率 計算效率 運維效率的優化與提高,當你覺得hadoop集群的效能太差太差的時候,其...
Hadoop效能調優
最近看了些hadoop效能調優的文章,現總結如下。1 關於集群物理機器 配置noatime選項。配置方式 etc fstab 相關知識點 atime,ctime,mtime。對於datanode tasktracker機器,不需要配置raid或lvm。盡量避免使用到tasktracker的swap。...