HadoopDoctor:来自腾讯数据仓库TDW的MR诊断系统
TDW是基于Hadoop生态圈研发的大数据处理平台,MapReduce计算引擎在TDW平台中承担了所有的离线数据计算,是TDW最重要的底层支撑平台之一。在TDW 平台中,除了MR程序会生成MapReduce作业外,被广泛应用的Hive、tPig等计算框架最终也会把查询语言翻译成MapReduce作业来进行计算,因此对MapReduce作业运行信息进行收集并提供给开发人员查询分析,是他们定位业务问题的最重要手段。不仅仅如此,基于收集的MapReduce作业运行信息,还能建立众多的监控指标来对整个MapReduce计算引擎的健康度进行监控。因此,收集MapReduce作业的运行信息对整个Hadoop平台的使用和稳定运行都是十分必要的。
HadoopDoctor介绍
HadoopDoctor,是TDW专门收集MapReduce作业运行信息的系统。HadoopDoctor不需要对集群的Hadoop代码进行修改,是TDW的外围系统,独立运行,与Hadoop自带的HistoryServer服务相比,HadoopDoctor支持作业信息的多维度查询和支持统计分析。
TDW的MapReduce计算引擎经历了MapReduce V1 -> Corona -> MapReduce V2三个阶段。从Corona开始,MapReduce架构便发生了巨大的变化,JobTracker不再是单点,新架构把集群资源调度和作业管理分开,实现了JobTracker的分散化。同样,HadoopDoctor的实现架构也经历了相应的变化。
HadoopDoctor的基本架构主要包括作业信息采集与存储、数据冷备、数据使用:

作业信息采集与存储
1、MapReduce V1架构下的HadoopDoctor

MapReduce V1是Master-Slaves架构,主节点JobTracker负责集群资源调度和作业运行管理,每道MR作业执行完成后会生成JobConf文件和JobHisotry文件在JobTracker的本地磁盘上,MapReduce V1架构下的HadoopDoctor作业信息采集是在JobTracker部署一个doctorparser程序,定时对各个作业的JobConf和JobHistory文件进行解析,将解析后的数据写到tPG数据库(tPG作为腾讯商业数据库的替代方案,基于开源软件PostgreSQL进行扩展,拥有与商业数据库类似的特性)。
2、Corona/MapReduce V2架构下的HadoopDoctor

从Corona架构开始,MapReduce便实现了JobTracker分散化功能,集群资源调度由ClusterManager(简称CM)实现,JobTracker作为进程运行在子节点CoronaTaskTracker(简称CTT)上面,只负责监控一个MR作业的运行管理。MapReduce V2也是实现了JobTracker分散化功能,集群的资源调度由ResourceManager(简称RM)实现,JobTracker抽象成ApplicaitonMaster(简称AM)作为一个Container运行在子节点NodeManager(简称NM)上面,只负责监控一个MR作业的运行管理。Corona/Mapreduce V2的MR作业同样会产生JobConf和JobHistory文件,但由于JobTracker分散化后,这两个文件也分布到各个子节点上面,因此作业信息采集需要分布到各个子节点上面进行。
新架构下的HadoopDoctor引入DoctorMaster新角色,其职责是从CM/RM获取子节点列表,定时、分批次地拉起子节点的doctorparser程序对作业的JobConf和JobHistory进行解析写到tPG,有效控制tPG的写并发量。
数据冷备
目前TDW每天运行的MR作业数超过1百万,Map Task超过7千万,Reduce Task超过8百万,如此庞大的数据会使得tPG服务器的存储压力过大,HadoopDoctor的历史数据必须要实现冷备功能。而TDW本身是数据仓库,因此用它来做HadoopDoctor的历史数据存储是最合适不过了。把历史数据从tPG导入到TDW的Hive表,不仅仅实现了数据冷备功能,还可以使用TDW-IDE编写SQL语句对数据进行统计分析。
数据使用
- 提供前台页面供用户查询作业的详细信息。
- 建立指标检测MapReduce计算引擎的健康度。
参考链接:http://mta.qq.com/mta/bigdata/?p=633
HadoopDoctor:来自腾讯数据仓库TDW的MR诊断系统的更多相关文章
- 大规模Hadoop集群在腾讯数据仓库TDW的实践
随着业务的快速增长,TDW的节点数也在增加,对单个大规模Hadoop集群的需求也越来越强烈.TDW需要做单个大规模集群,主要是从数据共享.计算资源共享.减轻运营负担和成本等三个方面考虑. 数据共享.T ...
- Hermes:来自腾讯的实时检索分析平台
实时检索分析平台(Hermes)是腾讯数据平台部为大数据分析业务提供一套实时的.多维的.交互式的查询.统计.分析系统,为各个产品在大数据的统计分析方面提供完整的解决方案,让万级维度.千亿级数据下的秒级 ...
- 多个div并排显示的居中问题——来自腾讯的一道面试题
前两天曲面了一下腾讯,被鄙视了... 自己太水了,且面试官对我可能也有点不爽,说什么还没叫我我就去了,可是尼玛写的面试时间是3点40,我特码进去的时候都3点50了,我还以为晚了呢,他妈的. 实现几个d ...
- 图片来自腾讯,未经授权不可引用,js解决方法
问题记录,解决后来更新 js伪造Referer, 外链图片让用户浏览时,不发送 referer 字段给原网站的方法 A 网站引用了 B 站的 图片 <img src="b_url&qu ...
- 学生问的一道javascript面试题[来自腾讯]
function Parent() { this.a = 1; this.b = [1, 2, this.a]; this.c = { demo: 5 }; this.show = function ...
- 大数据计算新贵Spark在腾讯雅虎优酷成功应用解析
http://www.csdn.net/article/2014-06-05/2820089 摘要:MapReduce在实时查询和迭代计算上仍有较大的不足,目前,Spark由于其可伸缩.基于内存计算等 ...
- 腾讯云数据库团队:MySQL数据库的高可用性分析
作者介绍:易固武,腾讯高级工程师,参与腾讯账号安全建设,腾讯数据仓库(TDW)优化改造,腾讯云数据库等项目,对大规模分布式存储和计算系统有浓厚的兴趣和经历 MySQL数据库是目前开源应用最大的关系型数 ...
- 【腾讯Bugly干货分享】OCS——史上最疯狂的iOS动态化方案
本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/zctwM2Wf8c6_sxT_0yZvXg 导语 在 ...
- 【腾讯Bugly干货分享】微信mars 的高性能日志模块 xlog
本文来自于腾讯bugly开发者社区,未经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/581c2c46bef1702a2db3ae53 Dev Club 是一个交流移动 ...
随机推荐
- Fish入门
安装以及配置 Linux和OS X基本都可以通过源来安装,实在不行就下载源码编译,不难的. 安装好第一步是修改OS默认shell: chsh -s /usr/bin/fish 然后就可以直接使用了,就 ...
- 学习笔记:APP切图那点事儿–详细介绍android和ios平台
学习笔记:APP切图那点事儿–详细介绍android和ios平台 转载自:http://www.woofeng.cn/articles/168.html 版权归原作者所有 作者:亚茹有李 原文地址 ...
- HDU 5823 (状压dp)
Problem color II 题目大意 定义一个无向图的价值为给每个节点染色使得每条边连接的两个节点颜色不同的最少颜色数. 对于给定的一张由n个点组成的无向图,求该图的2^n-1张非空子图的价值. ...
- 四则运算<3>单元测试
经过分析图一的结果正确,因为输出到文件是为了打印,不要求在线答题功能,因此为实现答题功能. 经过分析,结果正确,满足了选择要求. 选择这六组测试用例的原因是这六组用例将有无乘数法,有无括号,有无负数, ...
- Google Polymer以及Web UI框架
时代在进步,原本前端只是用来简单的数据显示以及提交数据到后端处理逻辑的地方,而随着SPA的发展,前端的逻辑也越来越是庞大,恰巧,今天看微博的时候,发现一个概念讨论的比较多,就是 Web Compone ...
- Send Mail using C# code
using System.Net.Mail; public class MailHelp { public static void Send(string subject, string body) ...
- Cannot retrieve definition for form bean null on action错误
Cannot retrieve definition for form bean null on action错误 1. 如果jsp页面中要用到<html:form action="& ...
- 一步一步理解word2Vec
一.概述 关于word2vec,首先需要弄清楚它并不是一个模型或者DL算法,而是描述从自然语言到词向量转换的技术.词向量化的方法有很多种,最简单的是one-hot编码,但是one-hot会有维度灾难的 ...
- 学习iOS的一些网站收藏
1,CocoaChina:http://www.cocoachina.com/ 2,Code4App:http://code4app.com/ 3,梦维:http://www.dreamingwish ...
- [转]SQL:JOIN用法
JOIN连接组合两个表中的字段记录,包括三种: INNER JOIN运算式:连接组合两个表中的字段记录. LEFT JOIN运算式:连接组合两个表中的字段记录,并将包含了LEFT JOIN左边表中的全 ...