hadoop性能分析工具vaidya学习
2012-11-30 11:01
417 查看
总的来讲,内置的测试类比较少,真正的profiling还需要自己添加,而且要对hadoop源代码内置各个job counter的实现有叫深入的理解。
但为hadoop专门的profiling提供了一个可支持框架。
hadoop
0.20.2的vaidya文档
;http://hadoop.apache.org/docs/r0.20.2/vaidya.html
一个vaidya使用的简介
;http://www.cnblogs.com/reckzhou/articles/2409577.html
其他hadoop监控工具
http://www.zhihu.com/question/19661847
http://www.zhihu.com/question/19661847
使用示例
vaidya基本上是基于hadoop map/reduce任务日志进行事后分析的工具。
(1)在PKGBUILD_hadoop中增加如下包信息,打包重装hadoop
(2)在contrib/vaidya/bin/vaidya.sh中做如下修改
(3)运行一个map-reduce的job,并将output/logs/_histroy目录下的文件hadoop fs -get到本地,运行
(4)
生成一个分析结果的report.xml,示例
vaydya主要是解析jobHistory文件中的Job信息、task信息、各级couner信息,然后在这些信息上运行各个Test类的evaluate()接口,计算出一个影响0~1之间的影响因子,根据配置的系统success阈值判断该测试用例是否通过。
生成结果
BalancedReducePartitioning
(1)将各个reduce task的统计信息,按照INPUT_RECORDS排序后,返回一个list
(2) task1.input_record > task2.input_record > task3.input_record
从前到后将input_record想加,直到累计的record大于 PercentReduceRecords(0.85) * job reduce input recored总数
影响力impact level就等于 1- 相加的task的数目/总reduce task数目
相加的task的数目,含义是用了多少个reduce来解决85%的数目,
这个数目越大,相加的task的数目/总reduce task数目就越大,impact level就越小,相反解决85%数目的reduce task数目越小,impact level就越大。
impact level的含义是解决15%以内的reduce数据的task数目,impact level小于20%为通过,就是用20%的reduce解决15%的数据。
也就是说如果用少部分reduce task处理了大部分数据,则视为不平衡。
MapsReExecutionImpact
impact = (LAUNCHED_MAPS - TOTAL_MAPS)/TOTAL_MAP
重试的map task数目的比例不超过40%
ReadingHDFSFilesAsSideEffect
impact = HDFS_BYTES_READ/MAP_INPUT_BYTES/NormalizationFactor
HDFS_BYTES_READ/MAP_INPUT_BYTES/2< 0.05
HDFS_BYTES_READ/MAP_INPUT_BYTES < 0.1
HDFS_BYTES_READ < 0.1 * MAP_INPUT_BYTES
也就是说从HDFS读入的数据,不超过map任务总数据的10%
为什么会小呢?一说是HDFS是底层文件的读入,而map input bytes是job task的输入,例如输入的是压缩文件,那么这个hdfs读肯定小了。
MapSideDiskSpill
impact = (所有map task的FILE_BYTES_WRITTEN的累计 - 总的MAP_OUTPUT_BYTES )/总的MAP_OUTPUT_BYTES/ 归一化数字3
impact < 0.3
所有map task的FILE_BYTES_WRITTEN的累计 - 总的MAP_OUTPUT_BYTES < 0.9 * 总的MAP_OUTPUT_BYTES
在map输出时,由于多次spill,使得FILE_BYTES_WRITTEN 大于 AP_OUTPUT_BYTES,也是说由于spill造成的多写的数据,不超过输出总数据的90%。
io相关配置参数的解释:http://lovebingkuai.diandian.com/post/2012-05-22/19764807
http://www.linuxso.com/architecture/31187.html
但为hadoop专门的profiling提供了一个可支持框架。
vaidya简介
hadoop0.20.2的vaidya文档
;http://hadoop.apache.org/docs/r0.20.2/vaidya.html
一个vaidya使用的简介
;http://www.cnblogs.com/reckzhou/articles/2409577.html
其他hadoop监控工具
http://www.zhihu.com/question/19661847
http://www.zhihu.com/question/19661847
使用示例
vaidya基本上是基于hadoop map/reduce任务日志进行事后分析的工具。
(1)在PKGBUILD_hadoop中增加如下包信息,打包重装hadoop
生成一个分析结果的report.xml,示例
vaidya实现细节与内置的测试类
vaydya主要是解析jobHistory文件中的Job信息、task信息、各级couner信息,然后在这些信息上运行各个Test类的evaluate()接口,计算出一个影响0~1之间的影响因子,根据配置的系统success阈值判断该测试用例是否通过。
测试用例的配置文件
类图
流程图
内置测试类简介
BalancedReducePartitioning(1)将各个reduce task的统计信息,按照INPUT_RECORDS排序后,返回一个list
(2) task1.input_record > task2.input_record > task3.input_record
从前到后将input_record想加,直到累计的record大于 PercentReduceRecords(0.85) * job reduce input recored总数
影响力impact level就等于 1- 相加的task的数目/总reduce task数目
相加的task的数目,含义是用了多少个reduce来解决85%的数目,
这个数目越大,相加的task的数目/总reduce task数目就越大,impact level就越小,相反解决85%数目的reduce task数目越小,impact level就越大。
impact level的含义是解决15%以内的reduce数据的task数目,impact level小于20%为通过,就是用20%的reduce解决15%的数据。
也就是说如果用少部分reduce task处理了大部分数据,则视为不平衡。
MapsReExecutionImpact
impact = (LAUNCHED_MAPS - TOTAL_MAPS)/TOTAL_MAP
重试的map task数目的比例不超过40%
ReadingHDFSFilesAsSideEffect
impact = HDFS_BYTES_READ/MAP_INPUT_BYTES/NormalizationFactor
HDFS_BYTES_READ/MAP_INPUT_BYTES/2< 0.05
HDFS_BYTES_READ/MAP_INPUT_BYTES < 0.1
HDFS_BYTES_READ < 0.1 * MAP_INPUT_BYTES
也就是说从HDFS读入的数据,不超过map任务总数据的10%
为什么会小呢?一说是HDFS是底层文件的读入,而map input bytes是job task的输入,例如输入的是压缩文件,那么这个hdfs读肯定小了。
MapSideDiskSpill
impact = (所有map task的FILE_BYTES_WRITTEN的累计 - 总的MAP_OUTPUT_BYTES )/总的MAP_OUTPUT_BYTES/ 归一化数字3
impact < 0.3
所有map task的FILE_BYTES_WRITTEN的累计 - 总的MAP_OUTPUT_BYTES < 0.9 * 总的MAP_OUTPUT_BYTES
在map输出时,由于多次spill,使得FILE_BYTES_WRITTEN 大于 AP_OUTPUT_BYTES,也是说由于spill造成的多写的数据,不超过输出总数据的90%。
io相关配置参数的解释:http://lovebingkuai.diandian.com/post/2012-05-22/19764807
http://www.linuxso.com/architecture/31187.html
相关文章推荐
- React学习之扩展性能分析工具-Perf(二十八)
- 正确使用Android性能分析工具——TraceView【推荐学习】
- perf学习-linux自带性能分析工具
- Java性能工具分析学习笔记
- perf学习-linux自带性能分析工具
- perf学习-linux自带性能分析工具
- Linux性能分析工具学习
- Hadoop性能分析工具Hitune的安装(centos)
- hadoop中使用hprof工具进行性能分析
- perf学习-linux自带性能分析工具
- [转] 关于《Linux常用调试和性能分析工具》的学习笔记
- Hadoop性能分析工具Hitune的安装(centos)
- Hadoop性能分析工具Hitune的安装(centos)
- 深入理解Java虚拟机学习笔记-3.JVM性能监控及故障分析工具
- C/C++ 性能热点分析工具Very Sleepy
- java内存溢出性能分析工具讲解-- Eclipse Memory Analyzer tool(MAT)
- Android系统性能分析工具
- 网页性能分析工具汇总
- 性能分析工具介绍
- jvm性能分析工具之-- Eclipse Memory Analyzer tool(MAT)