全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 经管代码库
2416 1
2015-03-25


十万火急





      上周二,朋友公司的Hadoop集群服务不可用,从早上9点开始一直持续到12点。业务方催得比较急,希望尽快恢复,至少给个可以恢复的时间点。这种心情做过线上服务运维的同学应该都能理解。特别是在没有任何思路的情况下,就只能干着急!




症状了解





   

朋友联系我,咨询了下具体症状为namenode启动过程中,一直打印如下log:


    这个情况以前也没遇到过,询问了下当前使用的版本是2.4.0,看log 是info 级别,判断数据应该没什么问题。




查阅资料






   

    这种问题一般直接google hadoop jira


     打开第一个链接,搜索关键字: does not belong to any file






大致浏览发现与https://issues.apache.org/jira/browse/HDFS-7503 描述现象类似







      大体上讲如果在删除大量文件之后立即重启集群,会因大量打印游离块信息,namenode很长一段时间都会在安全模式之下,导致namenode长时间不可用。这个问题将在2.6.1和1.3.0的版本中被修复。









信息确认




     

      跟朋友确认了一下,确实在前一天有大批量删除文件的操作,删除的文件数高达700多W之多。大概能确定情况和这个jira 提到的一致。粗略估计了若每秒打印100条info log,那么700多W大概需要1天的时间才能打印完成。最直接的解决方法就是降低日志级别。







操作:动态设置调整日志级别



不重启降低namenode的log级别,打开http://{your_namenode_ip}:50070/logLevel




查看源码,找到打印这个log的类的全路径,输入

org.apache.hadoop.hdfs.server.blockmanagement.BlockManager查看log级别为INFO,

将其设置成“WARN”,查看namenode的最新log,没有变化,等待一会,依然持续打印,问题没有解决。




判断应该是log类别没有调对,继续查看打印这段log的源码:






具体打印log的是blockLog






      实际上对应的log类别应该是:BlockStateChange ! 其实从打印出来日志就可以看出来的。

     在Log中输入”BlockStateChange”,Level输入”WARN“,然后点击”Set log level”按钮。

     查看namenode log ,log马上停止,不过还打印其他信息,确认生效,等待2-3分钟,log恢复正常。


     测试能正常上传下载数据,确认各项指标都正常,集群恢复可用。整个修复过程耗时半个小时。




线上遇到这样的问题,千万要冷静,越是着急越容易出乱子!






文章出处:http://chuansong.me/n/1128131

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2015-10-13 12:20:00
感谢分享,Hadoop系列好帖。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群