4月 19

hadoop运维问题1

2013-04-19 21:18:29,171 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: org.apache.hadoop.util.DiskChecker$DiskErrorException: Invalid value for volsFailed : 1 , Volumes tolerated : 0
at org.apache.hadoop.hdfs.server.datanode.FSDataset.(FSDataset.java:975)
at org.apache.hadoop.hdfs.server.datanode.DataNode.startDataNode(DataNode.java:389)
at org.apache.hadoop.hdfs.server.datanode.DataNode.(DataNode.java:299)
at org.apache.hadoop.hdfs.server.datanode.DataNode.makeInstance(DataNode.java:1582)
at org.apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode(DataNode.java:1521)
at org.apache.hadoop.hdfs.server.datanode.DataNode.createDataNode(DataNode.java:1539)
at org.apache.hadoop.hdfs.server.datanode.DataNode.secureMain(DataNode.java:1665)
at org.apache.hadoop.hdfs.server.datanode.DataNode.main(DataNode.java:1682)

原因:磁盘损坏或链接失败
解决方案:通过hdfs的页面可以查到是那台服务器问题,在问题服务器上查看查看是那块硬盘的问题。紧急处理,停止该机的hdfs服务,在hadoop的hdfs-site.xml的配置中将损坏硬盘去掉,然后启动hdfs。之后尽快更换硬盘。

在恢复过程中使用“hadoop fsck /”查看当前状态。主要看“Missing replicas”副本丢失的比例,当数值为0%时,则恢复到系统设置的副本数量。
Minimally replicated blocks: 最小副本块完整的比例
Over-replicated blocks: 副本数高出设定默认复制级别参数的数据块文件所占比率
Under-replicated blocks: 副本数低于设定默认复制级别参数的数据块文件所占比率
Mis-replicated blocks: 丢失的副本块文件所占比率
Default replication factor: 默认副本数量
Average block replication: 实际平均副本数
Corrupt blocks: 损坏的block数
Missing replicas: 丢失的副本数
Number of data-nodes: 数据节点数
Number of racks: 机架数,如果没配置机架,默认都是1

3月 30

centos 硬盘只读

       通过ftp上传文件失败。直接登录服务器查看,权限都没有问题,直接创建文件,系统也是报系统只读。
       首先卸载分区,然后扫描,结果如下:
# fsck -f /dev/sdb1
fsck 1.39 (29-May-2006)
e2fsck 1.39 (29-May-2006)
fsck.ext3: Attempt to read block from filesystem resulted in short read while trying to open /dev/sdb1
Could this be a zero-length partition?

        很奇怪怎么分区为0呀,是不是主磁道坏了,如果是就比较麻烦了,真实不应该卸载。应该先把需要的数据考出来就好了。只能尝试修复了。之前看多过相关修复的页面如下:
http://www.cyberciti.biz/tips/surviving-a-linux-filesystem-failures.html
修复前先看看,系统日志里是否有些提示,如下:
kernel: sdb: Write Protect is off
kernel: SCSI device sdb: drive cache: write back
       奇怪硬盘被写保护了。直接看看硬盘状态
fdisk -l
      没有查询到相关的硬盘信息。这个就没有办法了,系统认不到,但是全部坏掉的几率不大,因为之前还可以读出文件。重启操作系统。
硬盘又认出来了。做扫描,果然有坏块,修复完毕挂载,一切正常。有惊无险。

       通过资料查询,此种处理为保护数据,应该是比较安全的。
提醒:如果参照面页面进行处理,输入命令“hdparm -W0 /dev/sdb”关闭写缓冲区,这个我没有测试。如果要重启,分区又不是必要的要将/etc/fstab中的扫描部分停掉,以避免因为扫描失败不能进入系统。
http://www.linuxforums.org/forum/red-hat-fedora-linux/136472-possible-sata-related-system-slowdowns.html