摘要 : 下周准备去某地做Hadoop相关的技术培训,主要负责讲解Hadoop的安装部署和运维部分,赶制了一份PPT,将平时工作中遇到的问题也提取了一下,希望能对Hadoop运维相关人员有所帮助,算是个补上的运维记录吧,错误数据均来 ...
下周准备去某地做Hadoop相关的技术培训,主要负责讲解Hadoop的安装部署和运维部分,赶制了一份PPT,将平时工作中遇到的问题也提取了一下,希望能对Hadoop运维相关人员有所帮助,算是个补上的运维记录吧,错误数据均来自以前日常工作中的Hadoop日志。
也有一点点跟Hadoop相关的非保密数据,拿出来晒晒。
目前公司的数据规模如下,相比大公司不算是很大的数据量,但是也不是很小。
接收日志超过1.2TB/日,还在不断增加中。80%采用nginx ncsa格式并进行清洗,20%采用Scribe接收,并在逐步迁移至Scribe上。像PV和用户数,回头率这种属于保密数据,就不好公布了。
3500+任务/日,95%采用定时任务执行,5%是业务相关人员采用phpHiveAdmin进行临时查询。
集群任务数据吞吐10TB+/日,意思就是每天跑3500+任务所进行读取和写入的数据量,如果是每月初跑月数据或者季数据,吞吐数据量翻倍。
分析过一些很有趣的东西,比如在线看《甄嬛传》的58%是女性,42%是男性。20-39岁人数最多,总共占到了63.73%,大概这个年龄段最喜欢研究斗心眼吧,而且这片子很牛的一点是,不长尾,一直有人看,说明还是拍的很好。相比之下,《北京青年》就长尾了,3个月在盒子里面点播了1.3亿次,男性占比60%,20-29岁年龄段占比41.39%。山东河南不愧是人口大省,各种片子基本都在前三名。《海贼王》的数据最有特点,我一开始不明白为什么每周都会有一个数据暴增点,后来有人告诉我,因为我不看动画片,海贼王每周会更新一集。你以为你爱看动画片吗?其实你没有广东人爱看,海贼王的点播广东占了11.99%,相比第二名山东的7.89%整整多了4.1%。搞数据其实是很好玩的事,看你怎么搞了。
言归正传,分享Hadoop相关。以下内容节选自PPT,没头没尾,看个大概。
集群配置--注意事项
1. 将完整的/etc/hosts文件放置在每台服务器上,hadoop的域名和IP转换要用到hosts文件
2. 请确保hadoop所绑定使用的端口没有被防火墙所拦截。
3. 请确保集群中各服务器间网络连接正常
4. 在几个相关的配置文件中写入了正确主机名或IP信息
安装和配置的FAQ
是不是一定需要SSH免密码登录?
不是的,集群状况下Hadoop并不是必须做ssh密钥,除非需要单点启动
是不是一定要做LDAP?
不是的,LDAP是在做大集群管理时可以方便的管理服务器集群,并非给Hadoop专用的。
Hadoop对硬件的要求?
当然是越高越好。
我们NN 96Gmem,2TBx4,8coreCPU
DN 32Gmem,2TBx4,8~16coreCPU
运维故障分析与解决(一)
ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Incompatible namespaceIDs in /home/hadoop/tmp/dfs/data: namenode namespaceID = 39895076; datanode namespaceID = 1030326122
原因:namenode 被重新格式化,datanode数据版本与namenode不一致
解决:1.删除datanode所有文件
2.修改datanode dfs/data/current/VERSION与namenode相同
运维故障分析与解决(二)
ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: DatanodeRegistration(192.168.2.19:50010, storageID=DS-1082898260-202.106.199.39-50010-1348575582644, infoPort=50075, ipcPort=50020):DataXceiveServer: Exiting due to:java.lang.OutOfMemoryError: Java heapspace
(注:上面这个ERROR并不一定全会发生,有时会出现无ERROR出现datanode就关闭的情况)
ERROR org.apache.hadoop.mapred.TaskTracker: Caught exception: java.io.IOException: Call to hadoopmaster/192.168.1.43:9001 failed on local exception: java.io.IOException: Connection reset by peer
原因:常规数据交换量过大,导致通信故障datanode无法连接namenode
任务数据交换量过大,导致tasktracker与jobtracker通信故障
解决:1.增大带宽
2.配置机架感知脚本topology.script.file.name
3.关闭均衡器
运维故障分析与解决(四)
ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: org.apache.hadoop.util.DiskChecker$DiskError
Exception: Invalid value for volsFailed : 3 , Volumes tolerated : 0
原因:磁盘损坏
解决:关机换硬盘,2台以内服务器损坏无需关心数据丢失,hadoop存储策略以服务器为单位,不以硬盘为单位
运维故障分析与解决(五)
2012-09-25 20:19:42,634 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: dnRegistration = DatanodeRegistration(bt-199-039.bta.net.cn:50010, storageID=, infoPort=50075, ipcPort=50020)
原因:主机名转换错误,datanode无法启动
解决:设置hostname和/etc/sysconfig/network,然后重启datanode
运维故障分析与解决(六)
Hive查询FileNotFound Exception
原因:文件不存在错误
故障一:文件的确不存在
故障二:权限问题导致数据没有正确insert写入到hive读取路径
解决:dfs.permissions = false或设置hive读取路径正确的可写权限。
运维故障分析与解决(七)
INFO org.apache.hadoop.hdfs.server.datanode.DataNode: writeBlock blk_-8336485569098955809_2093928 received exception java.io.IOException: Permission denied
原因:之前用错误账户启动hadoop,dfs存储所使用的本地文件夹被变更用户和组,导致文件夹不可写。datanode无法启动。
解决:切换高权限用户,将dfs存储的本地文件夹chown -R成hadoop本身用户和组,重启datanode
没有(三),因为(三)太简单了,所以没有写。
运维和故障分析总结
一、遇到问题看日志,log4j的日志记录很详细。
二、多使用谷歌而不是百度,如果谷歌可以用的话。
三、多使用工具,开源工具或自己编写。
四、熟悉操作系统自带的工具
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com