阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

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

125次阅读
没有评论

共计 2797 个字符,预计需要花费 7 分钟才能阅读完成。

最近新采购的一批机器,由于 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

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计2797字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中