手机版
你好,游客 登录 注册
背景:
阅读新闻

CentOS 6.2及最新操作系统部署Hadoop的注意事项

[日期:2014-06-12] 来源:Linux社区  作者:qileilove [字体: ]

最近新采购的一批机器,由于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,问题得以解决

--------------------------------------分割线 --------------------------------------

Ubuntu 13.04上搭建Hadoop环境 http://www.linuxidc.com/Linux/2013-06/86106.htm

Ubuntu 12.10 +Hadoop 1.2.1版本集群配置 http://www.linuxidc.com/Linux/2013-09/90600.htm

Ubuntu上搭建Hadoop环境(单机模式+伪分布模式) http://www.linuxidc.com/Linux/2013-01/77681.htm

Ubuntu下Hadoop环境的配置 http://www.linuxidc.com/Linux/2012-11/74539.htm

单机版搭建Hadoop环境图文教程详解 http://www.linuxidc.com/Linux/2012-02/53927.htm

Hadoop LZO 安装教程 http://www.linuxidc.com/Linux/2013-01/78397.htm

Hadoop集群上使用Lzo压缩 http://www.linuxidc.com/Linux/2012-05/60554.htm

--------------------------------------分割线 --------------------------------------

更多Hadoop相关信息见Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13

本文永久更新链接地址http://www.linuxidc.com/Linux/2014-06/103021.htm

linux
相关资讯       Hadoop部署 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款