最近发生了一次因为hdfs的坏块导致的hive计算问题,因此写了个监控脚本用来监控hdfs的坏块,脚本如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#!/usr/bin/python
# -*- coding: utf8 -*-
#edit by ericni
#20140724
#monitor hdfs corrupt
import sys
import property
import sendmail
import re,os
reload(sys)
sys.setdefaultencoding('utf-8')
if __name__ == "__main__":
        corruptlist = []
        cmd = "hadoop fsck -list-corruptfileblocks"
        re = os.popen(cmd)
        result = re.readlines()
        print result
        for line in result:
                if "blk_" in line and ".Trash" not in line:
                #if "blk_" in line:
                        corruptlist.append(line)
        if len(corruptlist) != 0:
                mailcontent = """
                        <meta http-equiv="Content-Type" content="text/html";charset=utf-8>
                        <title>Hadoop集群坏块监控</title>
                          <style type="text/css">
                           body { font-size: 14px; color: #333;background-color: #fff;}
                           td { border: 1px solid #C1DAD7;padding:"4px 10px"; line-height: 24px;}       
                           table {border-collapse: collapse; width: 96%s;}
                           .divtd {color:#E28E40;}
                           .divcss5{ color:#F00;}
                          </style> """%("%")
                mailcontent += """
        <p style="margin: 0; padding: 5px 0; line-height: 28px; font: bold 18px/1.5;">坏块数量 %s,具体信息如下:</p>
        <div>
                                <table style="border-collapse: collapse; width: 96%s;">
                                        <tbody>
                                                <tr>
                                                        <td><div class="divtd">序号</div></td>
                                                        <td><div class="divtd">块号</div></td>
                                                        <td><div class="divtd">文件信息</div></td>
                        
                                                </tr>
                """%(str(len(corruptlist)),"%")
                id = 1
                for clist in corruptlist:
                        print "blkid is " +  clist.split()[0]  + " file is "  + clist.split()[1]
                        mailcontent += """
                                 <tr>
                        """
                        mailcontent += """<td><div>%s </div></td>""" % id
                        mailcontent += """<td><div>%s </div></td>""" % clist.split()[0]
                        mailcontent += """<td><div>%s </div></td>""" % clist.split()[1]
                        mailcontent += """
                        </tr>
                        """
                        id = id + 1
                mailcontent += "</tbody></table></div>"
                print mailcontent
                mailto = ['ericni.ni@xxxxx']
                subject = "Haddop集群坏块监控"
                sendmail.send_mail_withoutSSL(subject,mailcontent.encode('utf-8'),mailto)

本文转自菜菜光 51CTO博客,原文链接:http://blog.51cto.com/caiguangguang/1532988,如需转载请自行联系原作者

监控hdfs坏块脚本相关推荐

  1. 利用RMAN检测数据库坏块的脚本

    虽然我们也可以通过dbv(db file verify)工具做到对单个数据文件的坏块检测,但是直接使用RMAN的"backup validate check logical database ...

  2. ORA-01578和ORA-26040--NOLOGGING操作引起的坏块-错误解释和解决方案(文档ID 1623284.1)...

    ORA-01578和ORA-26040--NOLOGGING操作引起的坏块-错误解释和解决方案(文档ID 1623284.1) (一)NOLOGGING操作引起的坏块(ORA-01578和ORA-26 ...

  3. linux系统硬盘坏道,如何在 Linux 系统下检测硬盘上的坏道和坏块

    在 Linux 上使用坏块工具检查坏道 坏块工具可以让用户扫描设备检查坏道或坏块.设备可以是一个磁盘或外置磁盘,由一个如 /dev/sdc 这样的文件代表. 首先,通过超级用户权限执行 fdisk 命 ...

  4. 检测raid类型和磁盘坏道脚本

    #!/bin/sh #脚本功能: #安装工具MegaCli64 #Host Information:主机名和ip地址 #Raid Information:raid信息和充电状态 #WARNING In ...

  5. Oracle corrupt block(坏块) 详解

    转自:http://blog.csdn.net/tianlesoftware/article/details/5024966 一. 坏块说明 1.1 相关链接 在看坏块之前,先看几个相关的链接,在后面 ...

  6. linux系统检测硬盘物理损坏,linux系统下检测硬盘上的坏道和坏块

    linux系统下检测硬盘上的坏道和坏块 发布时间:2020-02-28 22:22:57 来源:51CTO 阅读:1127 作者:赤练挚爱 磁盘坏道检测 当磁盘出现以下情况:io wait 无故增高或 ...

  7. linux系统硬盘坏道,linux系统下检测硬盘上的坏道和坏块

    磁盘坏道检测 当磁盘出现以下情况:io wait 无故增高或居高不下: 硬盘声音突然由原来的摩檫音变成了怪音: 系统无法正常启动,出现"IO error"等提示信息: mkfs时, ...

  8. ORACLE表有逻辑坏块时EXPDP导出报错排查

    某用户反馈EXPDP导出脚本异常中断,接入排查后发现导出某表时报错,后台ALERT日志中也有相应报错:最终确认排查为逻辑坏块问题,经沟通得知为某个时间段的备份表,后续排除此表后重新设置EXPDP脚本, ...

  9. 硬盘坏块监测linux,Linux上检测硬盘上的坏道和坏块

    Linux上检测硬盘上的坏道和坏块 让我们从坏道和坏块的定义开始说起,它们是一块磁盘或闪存上不再能够被读写的部分,一般是由于磁盘表面特定的物理损坏或闪存晶体管失效导致的. 磁盘坏道分为三种: 0磁道坏 ...

  10. 导出坏块表oracle,obj$坏块情况下exp导出单个表解决方案

    在前面一篇(obj$坏块exp不能执行原因探讨)已经研究了在obj$出现坏块的情况下,导致exp导出单个表不能成功的原因,这篇给出解决方案 1.重新创建exu81javt视图 SQL> CREA ...

最新文章

  1. 不一样的Gradle多渠道配置总结
  2. 64位 unsigned char_Java位运算符详解
  3. #1093 : 最短路径·三:SPFA算法(邻接表)
  4. 一个包含嵌套递归数据结构的对象的排序实现
  5. java使用properties_Java中使用Properties配置文件的简单方法
  6. getElementById和querySelector方法的区别
  7. BC95(ML5515)连接TCP流程
  8. 好的软件测试人员简历是什么样子的?
  9. gtj2018如何生成工程量报表_工程量清单计价规范2018
  10. python Craps赌博游戏
  11. Swift之Attempting to badge the application icon but haven't received permission from the user to badg
  12. GitChat · 前端 | React 生态系统:从小白到大神
  13. android 5.1 随机IMEI号
  14. Python性能优化
  15. 从violate到ConcurrentHashMap,我通过引导面试官,过了多场技术面试
  16. 从《速度与激情》之布莱恩说起
  17. 伺服电机的电子齿轮比如何确定?
  18. rk3368 开机内核启动不了
  19. 文件压缩(文件夹中有文件夹)
  20. 查看视频播放时的分辨率

热门文章

  1. Atitit ide的艺术 与新特性搜集大纲 目录 1. Prj mana 2 2. 界面布局自定义 2 2.1. 自定义 perspectives 2 3. 代码编写 2 3.1. 自动提示 2
  2. Atitit 图像处理知识点  知识体系 知识图谱
  3. atitit.提升软件开发的效率and 质量的那些强大概念and方法总结
  4. PAIP HTML的调试与分析工具
  5. 2021信创产业分类排行
  6. 数据隐私与加密学技术 |链捕手
  7. 通力法评 | 资管新规系列一:对公募基金管理公司的影响
  8. Kafka从上手到实践 - Kafka CLI:Topic CLI Producer CLI | 凌云时刻
  9. 【路径规划】基于matlab Beizer和改进的粒子群算法风环境下翼伞航迹规划【含Matlab源码 199期】
  10. 【三维路径规划】基于matlab RRT算法无人机三维路径规划【含Matlab源码 155期】