HadoopDoctor——TDW MapReduce诊断系统

前言

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语句对数据进行统计分析。

数据使用

(1)提供前台页面供用户查询作业的详细信息。

(2)建立指标检测MapReduce计算引擎的健康度。

更多大数据资讯,欢迎访问bigdata.qq.com

原文发布于微信公众号 - 腾讯大数据(tencentbigdata)

原文发表时间:2014-07-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏我是攻城师

大数据相关开源系统简介汇总

3707
来自专栏PPV课数据科学社区

Spark Streaming场景应用- Spark Streaming计算模型及监控

摘要 Spark Streaming是一套优秀的实时计算框架。其良好的可扩展性、高吞吐量以及容错机制能够满足我们很多的场景应用。本篇结合我们的应用场景,介结我们...

3756
来自专栏about云

Cloudera 系列1:Cloudera 入门指南

问题导读 1.Cloudera 提供了那些产品和工具? 2.Cloudera Navigator的作用是什么? Cloudera 提供一个可扩展、灵活、...

4576
来自专栏测试开发架构之路

【转载】Impala和Hive的区别

Impala是基于Hive的大数据实时分析查询引擎,直接使用Hive的元数据库Metadata,意味着impala元数据都存储在Hive的metastore中...

2352
来自专栏编程

一文读懂Apache Spark

摘要:Apache Spark快速、灵活、开发友好,是大型SQL、批处理、流处理和机器学习的主要平台。 从2009年在加州大学伯克利分校(u.c Berkele...

2930
来自专栏PPV课数据科学社区

Hadoop并非完美:8个代替 HDFS的绝佳方案

HDFS(Hadoop Distributed File System)是Hadoop项目的核心子项目,是分布式计算中数据存储管理的基础,坦白说HDFS是一个...

3635
来自专栏大数据

Hadoop和Spark的异同

解决问题的层面不一样 Hadoop实质上是解决大数据大到无法在一台计算机上进行存储、无法在要求的时间内进行处理的问题,是一个分布式数据基础设施。 HDFS,它将...

2368
来自专栏数据科学与人工智能

【Hadoop研究】Hadoop YARN的发展史与详细解析

【编者按】成熟、通用让Hadoop深得大数据玩家喜爱,即使是在YARN出现之前,在流处理框架林立下,Hadoop仍然被众多机构广泛运用在离线处理之上。借鉴于Me...

3105
来自专栏Python爬虫与算法进阶

Spark教程(三) Spark 学习资源

基本上把上面两个网站撸完,Scala就差不多了。scala还是和Python挺像的。

1171
来自专栏挖掘大数据

大数据初学者该如何快速入门?

很多人都知道大数据很火,就业很好,薪资很高,想往大数据方向发展。但该学哪些技术,学习路线是什么样的呢?用不用参加大数据培训呢?如果自己很迷茫,为了这些原因想往大...

1.6K6

扫码关注云+社区

领取腾讯云代金券