• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Hadoop Rumen介绍

mysql 搞代码 4年前 (2022-01-09) 34次浏览 已收录 0个评论

作者: Dong | 新浪微博: 西成懂 | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明 网址:http://dongxicheng.org/mapreduce/hadoop-rumen-introduction/ 什么是Hadoop Rumen? Hadoop Rumen是为Hadoop MapReduce设计的日志解析和分析工具

什么是Hadoop Rumen?

Hadoop Rumen是为Hadoop MapReduce设计的日志解析和分析工具,它能够将JobHistory 日志解析成有意义的数据并格式化存储。Rumen可以单独使用,但通常作为其他组件,比如GridMix (v3) 和 Mumak的基础库。

Hadoop Rumen设计动机

对于任何一个工作在Hadoop之上的外部工具,分析JobHistory日志都是必须的工作之一。基于这点考虑,Hadoop应内嵌一个JobHistory日志分析工具。

统计分析MapReduce作业的各种属性,比如任务运行时间、任务失败率等,通常是基准测试或者模拟器必备的功能,Hadoop Rumen可以为任务生成Cumulative Distribution Functions (CDF),这可以用于推断不完整的、失败的或者丢失的任务。

Hadoop Rumen基本构成

Hadoop Rumen已经内置在Apache Hadoop 1.0之上(包括0.21.x,0.22.x,CDH3)各个版本中,位于org.apache.hadoop.tools.rumen包中,通常被Hadoop打包成独立的jar包hadoop-tools-[VERSION].jar。Hadoop Rumen由两部分组成:

(1) Trace Builder

将JobHistory日志解析成易读的格式,当前仅支持json格式。Trace Builder的输出被称为job trace(作业运行踪迹),我们通过job trace很容易模拟(还原)作业的整个运行过程。

(2) ?Folder

将job trace按时间进行压缩或者扩张。这个还是为了方便其他组件,比如GridMix (v3) 和 Mumak,使用。Folder可以将作业运行过程进行等比例缩放,以便在更短的时间内模拟作业运行过程。

试用Hadoop Rumen

你可以通过两种方式运行Rumen,一种是使用集成化(综合所有功能)的HadoopLogsAnalyzer类,在很多Hadoop版本中,这个类已经过期,不推荐使用,另一种是使用TraceBuilder和Folder类。它们的运行方式基本类似,下面以HadoopLogsAnalyzer类为例进行说明:

bin/hadoop org.apache.hadoop.tools.rumen.HadoopLogsAnalyzer -v1 -write-job-trace file:///tmp/job-trace.json -write-topology file:///tmp/topology.json file:///software/hadoop/logs/history/done/

其中,“-v1”表示采用version 1的JobHsitory格式,如果你的Hadoop版本是0.20.x系列,则需要加这个参数,“-write-job-trace”是输出的job trace存放位置,“-write-topology”是拓扑结构存放位置,Rumen能够通过分析JobHistory中所有文件得到Hadoop集群的拓扑结构。最后一项紧跟你的JobHistory 中done目录存放位置,一般在${HDOOP_LOG}/history/done中,如果在本地磁盘,则需在目录前加前缀file://,如果在HDFS上需在目录前加前缀“hdfs://”。

下面是截取的job-trace.json和topology.json文件内容:

【job-trace.json】

“priority” : “NORMAL”,“jobID” : “job_201301061549_0003″,“mapTasks” : [ {"attempts" : [ {"location" : null,"hostName" : "HADOOP001","startTime" : 1357460454343,"finishTime" : 1357460665299,"result" : "KILLED","shuffleFinished" : -1,"sortFinished" : -1,"attemptID" : "attempt_201301061549_0003_m_000000_0","hdfsBytesRead" : -1,"hdfsBytesWritten" : -1,"fileBytesRead" : -1,"fileBytesWritten" : -1,"mapInputRecords" : -1,"mapOutputBytes" : -1,"mapOutputRecords" : -1,"combineInputRecords" : -1,"reduceInputGroups" : -1,"reduceInputRecords" : -1,"reduceShuffleBytes" : -1,"reduceOutputRecords" : -1,"spilledRecords" : -1,"mapInputBytes" : -1} ],“preferredLocations” : [ ],“startTime” : 1357460454686,“finishTime” : -1,“inputBytes” : -1,“inputRecords” : -1,“outputBytes” : -1,“outputRecords” : -1,“taskID” : “task_201301061549_0003_m_000000″,“numberMaps” : -1,“numberReduces” : -1,“taskStatus” : null,“taskType” : “MAP”}, {….

【topology.json】

{“name” : “”,“children” : [ {"name" : "default-rack","children" : [ {"name" : " HADOOP001","children" : null}, {"name" : " HADOOP002","children" : null}, {"name" : HADOOP003","children" : null}, {"name" : " HADOOP004","children" : null}, {"name" : " HADOOP005","children" : null}, {"name" : " HADOOP006","children" : null} ]} ]}

原创文章,转载请注明: 转载自董的博客

本文链接地址: http://dongxicheng.org/mapreduce/hadoop-rumen-introduction/

作者:Dong,作者介绍:http://dongxicheng.org/about/


Copyright © 2012
This feed is for personal, non-commercial use only.
The use of本文来源[email protected]搞@^&代*@码网( this feed on other websites breaches copyright. If this content is not in your news reader, it makes the page you are viewing an infringement of the copyright. (Digital Fingerprint:
)


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Hadoop Rumen介绍

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址