资源简介
yarn任务邮件监控及linux进程邮件监控,定时检查 ,本人在生产环境使用的,可以监控yarn任务,各种进程 如namenode ,java jar进程,如果不明白可以留言或者联系我(文档里面有联系方式)
代码片段和文件信息
#!/usr/bin/python
# -*- coding: utf-8 -*-
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication
from email.mime.image import MIMEImage
from email.Header import Header
from email.utils import formataddr parseaddr
from email import encoders
import traceback
import os
import sys
reload(sys)
sys.setdefaultencoding(‘utf8‘)
def _format_addr(s):
name addr = parseaddr(s)
print name addr
return formataddr((Header(name ‘utf-8‘).encode()
addr.encode(‘utf-8‘) if isinstance(addr unicode) else addr))
def send_mail(subject content sender=‘改成你的发件邮箱.cn‘ receiver=‘改成你的收件邮箱‘ cc=[] partname=None
priority=‘0‘):
if type(receiver) == str:
receiver = [receiver]
receiver1 = list(receiver)
msgRoot = MIMEMultipart(‘related‘)
msgRoot[‘From‘] = _format_addr(u‘mail监控通知<%s>‘ % sender)
msgRoot[‘To‘] = ‘ ‘.join(receiver1)
msgRoot[‘X-Priority‘] = priority
if cc:
if type(cc) == str:
cc = [cc]
receiver1.extend(cc)
msgRoot[‘Cc‘] = ‘ ‘.join(cc)
msgRoot[‘Subject‘] = subject
msgText = MIMEText(content ‘html‘ ‘utf-8‘)
msgRoot.attach(msgText)
if partname:
print partname
part = MIMEApplication(open(partname ‘rb‘).read())
part.add_header(‘Content-Disposition‘ ‘attachment‘ filename=partname)
msgRoot.attach(part)
smtp = None
try:
# 一般都是企业邮箱 个人邮箱我没有试过 可能会限制什么的
smtp = smtplib.SMTP_SSL()
smtp.connect(‘smtp.exmail.qq.com‘ port=465)
smtp.login(‘改成你的发件邮箱登录名称‘ ‘改成你的登录密码‘)
smtp.sendmail(sender receiver1 msgRoot.as_string())
except:
print “sendmail“
finally:
try:
if smtp: smtp.quit()
except:
print “sendmail“
def isRunning(process_name):
try:
process = len(os.popen(‘ps aux | grep “‘ + process_name + ‘“ | grep -v grep‘).readlines())
if process >= 1:
return True
else:
return False
except:
print(“Check process ERROR!!!“)
return False
def yarn_mon(result):
#该处应该写绝对路径
jps = ‘/data/module/hadoop-2.7.6/bin/yarn application -list‘
try:
yarn_appname=[]
yarn_list = os.popen(jps).readlines()[2:]
for yarn in yarn_list:
ys = yarn.split(“\t“)[1]
yarn_appname.append(ys)
for job in result:
if job not in yarn_appname:
print “send_mail“
send_mail(“每半小时yarn spark job 和 kafka to gp 监控“ “每半小时yarn spark job监控,该{}任务监控不到,\n“
“检查hadoop:8088界面详情正在运行的job任务为{}:\n“.format(jobyarn_appname))
except baseException e:
print e.message
send_mail(“每半小时yarn spark job 和 kafka to gp 监控“ “30分钟yarn spark job监控,监控邮件Except 未能成功运行 {}“ .format(e.message))
if __name__ == ‘__main__‘:
# 监控进
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4206 2019-01-29 14:48 mon.py
目录 0 2019-01-29 14:56 __MACOSX\
文件 266 2019-01-29 14:48 __MACOSX\._mon.py
文件 74 2019-01-29 14:48 mon_yarn_job.txt
文件 210 2019-01-29 14:48 __MACOSX\._mon_yarn_job.txt
文件 294 2019-01-29 14:53 閮ㄧ讲鏂规硶.py
文件 210 2019-01-29 14:53 __MACOSX\._閮ㄧ讲鏂规硶.py
- 上一篇:java实现敏感词过滤280838
- 下一篇:个人信息管理系统
相关资源
- hadoop-2.6.0编译好的64bit的native库
- hadoop/mapreduce-矩阵乘法 mapreduce的实现
- 山东大学大数据实验二:倒排索引H
- hadoop k-means实现
- 最高气温 map reduce hadoop
- mongo-hadoop-hive-2.0.2.jar
- mongo-hadoop-core-2.0.1.jar
- hadoop-2.6.0 win工具包 hadoop.dll winutils
- hadoop2.7.1(hadoop.dllwinutils.exe) 亲自测
- hadoop2 MR运行修改jar
- hadoop k-means算法实现可直接命令行运行
- MR编程之Top3源代码
- 用MapReduce开发的一个TFIDF 计算关键字
- hadoop实战源代码Java
- hadoop-2.6.0-hadoop.dll-winutils.exe
- 高职组云计算与大数据题库
- Hadoop-2.8.5全面资料
- IT18掌大数据课程包含配套资料
- Hadoop-client-2.7.4.jar
- hadoop2.7.3 hadoop.dll
- hadoop2.7.1对应的hadoop.dllwinutils.exe等。
- hadoop-auth-2.2.0.jar
- hadoop-common-2.2.0-bin-master
- hive函数大全中文版
- hadoop.dll以及winutils.exe
- hadoop-lzo-0.4.13.jar
- 山东大学大数据实验三:Hadoop实现P
- hadoop-lzo-0.4.20-SNAPSHOT.jar 包
- hadoop-lzo-0.4.20-SNAPSHOT.jar
- 基于mapreduce的pagerank实现DEMO地址
评论
共有 条评论