资讯专栏INFORMATION COLUMN

Hadoop运维记录系列(一)

Tikitoo / 1460人阅读

摘要:宋体宋体之所以要执行退出并重新登录。宋体宋体修改主机名后,切换到用户,启动,正常启动。宋体宋体正常启动只能支持分钟,然后就又挂了。宋体宋体问题的解决就很简单了,删除掉一些报错的文件,正常启动没有问题。

这两天参加了51CTO举办的云计算架构师峰会,办的非常好,很多干货。确实比一些名不副实的所谓大数据实际都是厂商推销产品的会议要强得多。但是其实这事跟Hadoop运维没关系,但是这两天集群发生的故障影响了我听报告。

说起来很奇幻,集群里面有三台服务器需要升级CPU,这本无可厚非。但是不多不少,恰恰是三台,符合Hadoop集群配置的replication数量。之间运维人员没有提前跟我们进行沟通,基本就是通知了一下,然后就瞬间停了3台服务器。这下坏了,整个集群基本就废了。存数据当然没问题,但是查数完全不能查了。之后最扯的事是OPS居然发现带错CPU了插不上去。等于白白废了集群,别的什么也没干。之后留守的数据组人员就发现集群无论如何也起不来了,只能打电话把我叫回来。


回到公司以后检查三台服务器无法启动的原因,其实起来了两台datanode和三台tasktracker,但无论什么样的reduce都做不了,会报错。另外有一台datanode无法启动。


一个一个解决吧。


一、解决tasktracker存在,但无法reduce的问题


看了一下50030的jobtracker页面,发现被停机的三台服务器主机名错误。被关机的服务器重新启动后,jobtracker里面的主机名列表有服务器名称变成了什么bta.net.cn。这明显是主机名被改了,hadoop在跟踪tasktracker的时候无法做内部的DNS解析,结果转到了外网的DNS上面。登上这三台服务器,发现果然bash提示符上显示的hostname被改掉了,变成了OPS自己起的名字叫什么web30。查看/etc/hosts文件,没有错误。那么用root账户执行 "hostname hadoop-node-xx",用以将主机名改回原来的。退出root,再重新登录,切换root,主机名变更完成。


之所以要执行退出并重新登录。是因为,即使你在当前终端下变更了hostname,但这时在当前root终端下,仍然认为hostname是web30。这时即便你用hadoop账户启动hadoop,也会认为主机名是web30。所以必须退出当前TTY,重新切换root和hadoop,主机名才会正常。


修改主机名后,切换到hadoop用户,启动hadoop,正常启动。提示log文件为hadoop-hadoop-tasktracker-hadoop-node-xx.log。所以这里有个小技巧,查看hadoop创建的日志名字,是可以判断你是否正确设置了hostname。当然,不能一下停3台。轮流停止3台服务器的tasktracker,并重新启动。jobtracker中的主机列表显示正常,reduce可以正常进行了。


二、解决单个datanode无法启动的问题。


这里分为两个小问题。


1. datanode曾错误的用root账户启动过,导致文件权限被变更。


经询问,OPS开机后,同事没有切换到hadoop用户启动datanode,而是在这个节点上用root账户启动的了datanode。发现弄错了之后,然后又停掉了切换到hadoop用户启动,就发现无法启动了。


通过观察日志发现,datanode日志大量报出Java.IO的exception,很乱,但究其根源,是访问blk_xxxx...块permission denied。所以立刻定位问题,是由于使用root账户启动,硬盘中的blk._xxxx..文件被置为了仅root用户读写权限造成的。于是在错误变更权限的硬盘上执行 "chown -R hadoop:hadoop *" 即可。重新启动datanode,正常启动。


2. 正常启动只能支持2-3分钟,然后datanode就又挂了。


先tail -f 打开datanode日志,然后启动datanode。日志大量报,Scheduling block blk_xxxx... but block is valid。大概是这话把,刷的太快记不清了。意思就是说,计划放置某某block,但是该block存在并合法,所以放弃。根据hadoop工作原理分析,是namenode需要往datanode上写入数据,但是分配的块名称在该节点上已经存在,并且数据校验合法,所以拒绝写入并放弃,同样的错误超过该datanode的容许范围,则挂掉了。那么问题也同样出在root账户启动上,root账户启动之后,正常工作了一段时间。并以root权限放置了一些block在硬盘上,问题1里面将这些block置为了hadoop权限。但namenode认为这些文件已经不存在了,所以需要replication,但是replication过程中发现这些文件又存在,并且合法。所以就挂掉了。


问题的解决就很简单了,删除掉一些报错的block文件,datanode正常启动没有问题。再做一下balance,集群又跑的嗖嗖的。


昨天解决完这些以后,特意叮嘱同事,我今天还需要参加51cto的云计算大会。一定要跟OPS说,明天不要停服务器,尽量周一我在的时候停。就算万不得已必须停,也千万不要再这么干了,万一非得这么干,也要一台一台停,每台确认没有问题了,再停下一台。


结果中午同事打电话,OPS又刚通知完就这样干了。倒是很给面子,没一下停三台,一下停了两台。然后同事又打电话说reduce做不了了,告知其hostname问题,遂正常解决。


文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/3794.html

相关文章

  • Hadoop运维记录系列(二)

    摘要:宋体接收日志超过日,还在不断增加中。山东河南不愧是人口大省,各种片子基本都在前三名。宋体宋体运维和故障分析总结一遇到问题看日志,的日志记录很详细。 下周准备去某地做Hadoop相关的技术培训,主要负责讲解Hadoop的安装部署和运维部分,赶制了一份PPT,将平时工作中遇到的问题也提取了一下,希望能对Hadoop运维相关人员有所帮助,算是个补上的运维记录吧,错误数据均来自以前日常工作中的Had...

    zhangfaliang 评论0 收藏0
  • Hadoop跑在云端系列文章 之 克隆虚拟机增加Hadoop节点

    摘要:让跑在云端系列文章,介绍了如何整合虚拟化和,让集群跑在虚拟主机上,通过云向用户提供存储和计算的服务。就算是用来实现单节点的,对计算资源浪费也是非常高的。多么伟大的技术啊现在我们有了个节点的集群,让跑在云端,让世界加速。 让Hadoop跑在云端系列文章,介绍了如何整合虚拟化和Hadoop,让Hadoop集群跑在VPS虚拟主机上,通过云向用户提供存储和计算的服务。 现在硬件越来越便宜,一台非品牌...

    sevi_stuo 评论0 收藏0
  • HBase运维基础——元数据逆向修复原理

    摘要:本文就运维的原理基础开始入手,重点讲解数据完整性,以及元数据逆向工程恢复数据完整性的原理方法。小结本文介绍了运维基础原理中的数据完整性以及逆向元数据修复原理,并举例介绍两个逆向修复元数据的工具和实用执行步骤。 背景鉴于上次一篇文章——云HBase小组成功抢救某公司自建HBase集群,挽救30+T数据的读者反馈,对HBase的逆向工程比较感兴趣,并咨询如何使用相应工具进行运维等等。总的来...

    ctriptech 评论0 收藏0
  • 运维专家带你系统性学linux系列-初级

    摘要:在中国市场,比红帽多,因为开源嘛红帽呢因为售后比较贵,使用的企业不多,大多数是银行国企使用,私企基本上都是三,作为发行版中的后起之秀,在短短几年时间里便迅速成长为从初学者到实验室用计算机服务器都适合使用的发行版。 0.写在前面:       这篇文章主要写给 Linux 初学者的,文章中会分...

    xcold 评论0 收藏0
  • 魅族大数据运维平台实践

    摘要:一大数据平台介绍大数据平台架构演变如图所示魅族大数据平台架构演变历程年底,我们开始实践大数据,并部署了测试集群。因此,大数据运维的目标是以解决运维复杂度的自动化为首要目标。大数据运维存在的问题大数据运维存在的问题包括部署及运维复杂。 一、大数据平台介绍 1.1大数据平台架构演变  showImg(https://segmentfault.com/img/bVWDPj?w=1024&h=...

    shadajin 评论0 收藏0

发表评论

0条评论

Tikitoo

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<