您好,登錄后才能下訂單哦!
優化cdh集群性能-可在安裝集群前操作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 提供了一些預先配置的優化方案可供直接使用
//動態調優方案,用戶可以在不同的時間段內采用不同的調優方案。由于以服務進程形式存在,就可以很方便的和crontab結合!Tuned 是監控并收集各個系統組件用量數據的守護進程,并可使用那些信息根據需要動態調整系統設置。它可以對 CPU 和網絡使用的更改作出反應,并調整設置以提高活動設備的性能或者降低不活躍設備的電源消耗。
見圖:
具體細節
[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
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。