一次网络异常的Hadoop trouble shooting 过程

实际来说,这个案例大概是1年半之前发生的,在我上一家公司,整个集群大概60个节点, 机器配置大概是128G,24vcores,1T*4硬盘。 因为要迁移,也就是从一个机房迁移到另外一个机房。

这里对Hadoop 迁移不做具体描述,当时发生一件事,就是我们新机房的HADOOP和老机房的不管从硬件,还是从软件基本是一样的,但是在测试阶段发现,之前正常的JOB或者说程序,在新Hadoop上有时候正常,有时候异常,所谓异常是说JOB以前执行5分钟的,现在要执行1个小时,甚至执行失败,而且没有规则,现在执行成功,下一次就失败,或者执行很长时间。

开发找到我的时候和我说这事,说他们在迁移过程,发现很奇怪的事,就是上面我描述的问题。 当时其实我也没有太多思路,为什么会发生这个情况,于是只能根据日志查询,发现mapreduce日志里失败的JOB一定有 找不到HDFS Block的错误,而正常结束的却没有。

于是我把方向对准HDFS,通过HDFS客户端上传文件,下载文件,整个表现和JOB表现一模一样,也就是说通过HDFS也存在上述问题,那很显然,整个环境是有问题的,和JOB本身无关。那我们现在就是要找到原因,到底是什么导致这个问题的。

我先通过磁盘测试工具测试磁盘,发现从磁盘角度一切正常,也就是说如果从单个磁盘的测试,没有发现问题,通过系统工具也检查了磁盘没有报错,还使用cloudera manager检查,显示一切正常, zabbix 对网络,CPU,内存的监控没有任何痕迹表示机器有问题。

因为还处在测试阶段,因此我决定重装整个环境,把系统全部格式化,系统重新安装,然后测试表现依然相同,大大的问号在我脑子里,为什么? 

于是我又回归到日志,主要是mapreduce和HDFS日志,HDFS会出现找不到BLOCK的错误,mapreduce日志同样的错误,其实就是说因为nodemanager去获取HDFS数据,找不到,但是我根据目录地址去看,BLOCK是存在的。 

做技术的都知道,碰到这种问题不是不想睡,是睡不着,半夜我起来把Yarn以及mapreduce的知识点和原理重新整理了一次,然后按照日志一步一步往下看,最后发现时报的JOB一定包含一台nodemanager,而正常完成的JOB没有那台nodemanager, 这个发现给了我思路。于是我关闭那台机器,再重新跑JOB,一切正常了。

那台机器到底出现了什么问题? 于是我再次开启,登入进去,发现一个明显问题,其他机器直接就登入了,唯有那一台机器会有大概1-2秒的暂停,我TOP一下,没有发现异常,然后PING一下,问题出来了,丢了1个包。 第二天通知网络工程师检查,结果是因为双网卡的端口绑错了一个。

上述出现的问题给了我2个思考, 一个是HADOOP原理的重要性,找到这个故障的原因完全是因为对Yarn以及mapreduce原理重新解读了一次,真正干活的时候好像和原理无关,实际等出现问题就会发现,原理如此重要。

另外就是对于Hadoop集群,因为网络的故障,一台机器导致整个集群不能正常工作,那么如何监控网络? 很明显zabbix没有监控到这次异常,丢一个包监控不到。 


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/17036462/viewspace-2141423/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/17036462/viewspace-2141423/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值