優化cdh集群性能-可在安裝集群前操作(MapReduce配置的最佳實踐)002
//讀完cdh官方文檔後,可知的優化操作
可在《03搭建cdh 生產環境前的Linux 優化(涉及到Linux內存參數優化)》
https://blog.51cto.com/12445535/2365948 這步同時操作
講解了:
提供了一些性能問題的解決方案,並介紹了配置最佳實踐。
1、禁止tuned 服務 //是內存分配管理
//關於tuned服務是什麽?
RHEL/CentOS 在 6.3 版本以後引入了一套新的系統調優工具 tuned/tuned-adm,其中 tuned 是服務端程序,用來監控和收集系統各個組件的數據,並依據數據提供的信息動態調整系統設置,達到動態優化系統的目的;tuned-adm 是客戶端程序,用來和 tuned 打交道,用命令行的方式管理和配置 tuned,tuned-adm 提供了一些預先配置的優化方案可供直接使用
見圖:
具體細節 [root@NewCDH-0--141 ~]# cat /etc/redhat-release CentOS Linux release 7.1.1503 (Core) [root@NewCDH-0--141 ~]# systemctl status tuned ● tuned.service - Dynamic System Tuning Daemon Loaded: loaded (/usr/lib/systemd/system/tuned.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2019-01-23 10:47:06 CST; 2 months 0 days ago Main PID: 897 (tuned) CGroup: /system.slice/tuned.service └─897 /usr/bin/python -Es /usr/sbin/tuned -l -P Jan 23 10:47:02 NewCDH-0--141 systemd[1]: Starting Dynamic System Tuning Daemon... Jan 23 10:47:06 NewCDH-0--141 systemd[1]: Started Dynamic System Tuning Daemon. [root@NewCDH-0--141 ~]# tuned-adm list Available profiles: - balanced - desktop - latency-performance - network-latency - network-throughput - powersave - throughput-performance - virtual-guest - virtual-host Current active profile: virtual-guest [root@NewCDH-0--141 ~]# tuned-adm off //關閉調優服務 [root@NewCDH-0--141 ~]# tuned-adm list Available profiles: - balanced - desktop - latency-performance - network-latency - network-throughput - powersave - throughput-performance - virtual-guest - virtual-host No current active profile. [root@NewCDH-0--141 ~]# systemctl stop tuned [root@NewCDH-0--141 ~]# systemctl disable tuned
2、關閉禁用透明重復頁面(THP) //前面博客有講到,這裏就不累贅了
具體見:Linux 初始化腳本 (centos6 centos7 通用) https://blog.51cto.com/12445535/2362407 第14
3、swap分區優化:減少使用交換分區使用百分比 同上
4、
提高隨機處理程序和IFile閱讀器的性能
MapReduce shuffle處理程序和IFile閱讀器在安裝了Hadoop本機庫的Linux系統上使用本機Linux調用(posix_fadvise(2)和sync_data_range)。
隨機處理程序
您可以通過啟用shuffle readahead來改善MapReduce shuffle處理程序的性能。這會導致TaskTracker或節點管理器在通過套接字將其發送到reducer之前預取地圖輸出。
要為YARN啟用此功能,請將mapreduce.shuffle.manage.os.cache設置為true(默認值)。要進一步調整性能,請調整mapreduce.shuffle.readahead.bytes的值。默認值為4 MB。
要為MapReduce啟用此功能,請將mapred.tasktracker.shuffle.fadvise設置為true(默認值)。要進一步調整性能,請調整mapred.tasktracker.shuffle.readahead.bytes的值。默認值為4 MB。
IFile讀者
啟用IFile預讀可提高合並操作的性能。要為MRv1或YARN啟用此功能,請將mapreduce.ifile.readahead設置為true(默認值)。要進一步調整性能,請調整mapreduce.ifile.readahead.bytes的值。默認值為4MB。
5、MapReduce配置的最佳實踐
下面描述的配置設置可以減少MapReduce執行中的固有延遲。您可以在mapred-site.xml中設置這些值。
(1)
任務完成後立即發送心跳
將mapreduce.tasktracker.outofband.heartbeat設置為true,以便TaskTracker在任務完成時發送帶外心跳以減少延遲。默認值為false:
<property>
<name>mapreduce.tasktracker.outofband.heartbeat</name>
<value>true</value>
</property>
(2)
減少單節點系統上JobClient狀態報告的間隔
jobclient.progress.monitor.poll.interval屬性定義JobClient向控制臺報告狀態並檢查作業完成的時間間隔(以毫秒為單位)。默認值為1000毫秒;您可能希望將此值設置為較低的值,以使測試在單節點群集上運行得更快。在大型生產群集上調整此值可能會導致不必要的客戶端 - 服務器流量。
<property>
<name>jobclient.progress.monitor.poll.interval</name>
<value>10</value>
</property>
(3)
調整JobTracker心跳間隔
將TaskTracker-to-JobTracker心跳的最小間隔調整為較小的值可以提高小群集上的MapReduce性能。
<property>
<name>mapreduce.jobtracker.heartbeat.interval.min</name>
<value>10</value>
</property>
(4)
立即啟動MapReduce JVM
mapred.reduce.slowstart.completed.maps屬性指定在安排任何Reduce任務之前必須完成的作業中Map任務的比例。對於需要快速周轉的小型作業,將此值設置為0可以提高性能;較大的值(高達50%)可能適合較大的工作。
<property>
<name>mapred.reduce.slowstart.completed.maps</name>
<value>0</value>
</property>
參考鏈接
Optimizing Performance in CDH https://www.cloudera.com/documentation/enterprise/5-13-x/topics/cdh_admin_performance.html
linux服務之tuned http://www.cnblogs.com/createyuan/p/5701650.html
淺談linux性能調優之十二:紅帽優化策略Tuned https://blog.csdn.net/u013870094/article/details/51055483
優化cdh集群性能-可在安裝集群前操作(MapReduce配置的最佳實踐)002