CentOS6.2及最新作業系統部署Hadoop的注意事項
最近新採購的一批機器,由於intel cpu體系架構的改變,新機器的系統需要升級,選擇了CentOS 6.2系統。
1 在新機器上將MR業務開啟後,導致整個叢集都反應很慢,執行的job幾乎都被卡住;通過ganglia監控發現,機器的system cpu超過30%,機器幾乎是滿負載的情況。
原因分析:
RHEL 6.2和6.3系統中包含了一個新特性,被稱為“transparent hugepage compaction”,它和Hadoop負載不能很好的互動。相比於其他的作業系統,這導致了嚴重的效能損失。Red Hat會在未來的更新中解決此問題。
解決方法:把如下命令增加到開機啟動中。
echo always > /sys/kernel/mm/redhat_transparent_hugepage/enabled
echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag
|
2 解決上述問題,把MR業務開啟一段時間後,經常出現某個task卡死的情況,job會一直hang住,檢視TT日誌
2013-08-2006:12:31,050INFO org.apache.hadoop.mapred.TaskLogsTruncater: Initializing logs` truncater withmapRetainSize=-1and reduceRetainSize=-1
2013-08-2006:12:31,053FATAL org.apache.hadoop.mapred.Child: Error running child : java.lang.OutOfMemoryError: unable to create newnative
thread
at java.lang.Thread.start0(Native Method)
at java.lang.Thread.start(Thread.java:640)
at org.apache.hadoop.mapred.ReduceTask$ReduceCopier.fetchOutputs(ReduceTask.java:1932)
at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:382)
at org.apache.hadoop.mapred.Child$4.run(Child.java:270)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:396)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1157)
at org.apache.hadoop.mapred.Child.main(Child.java:264)
|
從上面的日誌看,是OOM的錯誤,不能建立新的程式。但檢視該TT機器,記憶體充足,應該不是記憶體導致的問題。
後來又check了環境的配置,發現在以前RHEL 5.4系統中生效的ulimit的nproc限制,在新系統中並沒有生效(可以通過ulimit -u檢視)。google後得知,6.2系統中修改了這一配置,新的配置需要在裡/etc/security/limits.d/90-nproc.conf設定生效。
[hdfs@hd0447-sw40 ~]$ cat /etc/security/limits.d/90-nproc.conf
# Default limit fornumber of user`s processes to prevent
# accidental fork bombs.
# See rhbz #432903for
reasoning.
* soft nproc 1024
|
在處理hadoop前期環境的時候,發現有些機器在沒有業務的情況下機器負載很高的情況,這裡也記錄一下。
1. 通過top命令發現plymouthd程式cpu負載達到近100%
解決方法:開啟 /boot/grub/menu.lst , 去掉 “rhgb quiet”這兩個引數 ,然後重啟
2.power_saving死鎖引起的高負載
解決方法:
方法1:rmmod acpi_pad,重啟機器,機器將不支援電源節能;
方法2:在BIOS中開啟ACPI支援,重啟,更新核心至2.6.32-358.2.1.el6.x86_64;
方法3:在BIOS裡設定禁用;
方法4:要將驅動程式列入黑名單,編輯 /etc/modprobe.d/blacklist.conf,然後新增blacklist acpi_pad。
開始使用方法1,解決了大多數機器power_saving死鎖的問題,有些機器的整體負載還是會保持在10%以上,檢視後發現還有部分power_saving程式,採用方法4,問題得以解決
最新內容請見作者的GitHub頁:http://qaseven.github.io/
相關文章
- 企業部署CRM系統時的注意事項?
- 部署專案注意事項
- 部署nginx php注意事項NginxPHP
- hadoop 3.x安裝注意事項Hadoop
- 企業使用ERP系統必須瞭解的注意事項
- Python eval的用法及注意事項Python
- OA系統在選型時的注意事項
- 免費OA系統選購的注意事項
- spring cloud開發、部署注意事項SpringCloud
- 搭建 nuget 私服及注意事項
- Guava HashMultimap使用及注意事項Guava
- 企業選型CRM系統,這七個事項務必注意
- 介面開發文件及注意事項
- 給模切行業一些選擇ERP系統的注意事項行業
- 伺服器系統安全【10大注意事項】伺服器
- 開發及上線中的注意事項
- 企業工作流設計原則及注意事項
- 4.Rxjs介紹及注意事項JS
- 段合併優化及注意事項優化
- SVN安裝配置及安全注意事項
- 如何搭建伺服器及注意事項伺服器
- nft元宇宙鏈遊系統開發注意事項元宇宙
- 【知識分享】使用linux系統伺服器的注意事項Linux伺服器
- 使用DistCp將Hadoop進行雲遷移時注意事項TCPHadoop
- 敏捷企業的資料管理注意事項敏捷
- vs.net 2003水晶報表部署注意事項
- 【RAC】作業系統重灌後RAC11g節點重置注意事項作業系統
- RandomAccessFile注意事項randomMac
- @Lombok注意事項Lombok
- 小米遊戲本安裝ubuntu 雙系統注意事項遊戲Ubuntu
- 【知識分享】伺服器使用linux系統注意事項伺服器Linux
- 換工作的注意事項
- Oracle使用*的注意事項Oracle
- 整合環信IM SDK及使用注意事項
- ERP選型準備、方法及注意事項
- TransactionScope事務處理方法介紹及.NETCore中的注意事項NetCore
- 什麼是工時管理系統?企業使用時需要注意哪些事項
- Go語言中 defer 使用場景及注意事項,你是要注意的!Go
- 企業遷移到公有云之前的注意事項