CentOS 6.2及最新操作系统部署Hadoop存在的问题
来源:互联网 发布:网络布线公司 编辑:程序博客网 时间:2024/06/06 03:29
最近新采购的一批机器,由于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
-
20
06
:
12
:
31
,
050
INFO org.apache.hadoop.mapred.TaskLogsTruncater: Initializing logs' truncater
with
mapRetainSize=-
1
and reduceRetainSize=-
1
2013
-
08
-
20
06
:
12
:
31
,
053
FATAL org.apache.hadoop.mapred.Child: Error running child : java.lang.OutOfMemoryError: unable to create
new
native
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
for
number of user's processes to prevent
# accidental fork bombs.
# See rhbz #
432903
for
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,问题得以解决。
参考资料:
- http://serverfault.com/questions/356962/where-are-the-default-ulimit-values-set-linux-centos
- http://www.cnblogs.com/jishilei/archive/2013/03/29/2988222.html
- https://www.linuxwind.org/html/power_saving-thread-deadlock.html
- http://en.community.dell.com/support-forums/servers/f/1466/p/19456558/20387384.aspx
- CentOS 6.2及最新操作系统部署Hadoop存在的问题
- hadoop在linux操作系统中部署遇到的问题及解决方案
- CentOS 6.2部署Hadoop的注意事项<转>
- hadoop部署遇到的问题及解决办法
- Hadoop的部署及测试问题
- kafka集群部署及仍然存在的问题
- Hadoop MapReduce存在的问题及下一代MapReduce(MRv2/YARN)
- Hadoop从零开始--Centos操作系统的安装
- 部署CentOS 7操作系统
- hadoop在CentOS上的安装部署
- [hadoop] Centos部署Zookeeper
- Hadoop最新版本2.7.0的部署-学习记录01
- 最新vue-cli 2.9.1的webpack存在问题
- hadoop-1.1.2 在centos环境下的部署
- centos下的hadoop部署(64位)
- Hadoop部署及运行
- 关于在VM Workstation 安装Centos 与hadoop所遇见的问题及解决方案
- Hadoop学习之以全分布模式部署及问题
- HSql (基于 Eclipse)学习经验分享
- 预防 Youtube Mass Ban
- gvim 把c++/c设置成默认语言的方法
- hdu1166树状数组
- resteasy一
- CentOS 6.2及最新操作系统部署Hadoop存在的问题
- 延迟块清除的产生和避免示例
- 精品js Firefox 加入收藏夹功能代码 兼容Firefox 和 IE等各种浏览器
- Oralce OMF 功能详解
- 关于C语言函数调用的问题
- 设计模式 之 单件模式
- 安卓开发软件中如何检查Android网络连接状态
- J2SE总结
- 移动新闻--移动建站工具:分秒钟将Web网站移动化