vaidya安装和应用
vaidya是一个hadoopmap/reduce优化工具,主要根据hadoopmap/reduce运行的历史纪录和配置信息,提出参数优化建议性报告。
一,vaidya安装
默认vaidya工具在${HADOOP_HOME}/contrib/vaidya 目录下,在cloudera的3u1版本中,默认目录结构为
------vaidya
---------bin
---------vaidya.sh
---------conf
---------postex_diagnosis_tests.xml
---------hadoop-vaidya-0.20.2-cdh3u1.jar
如果${HADOOP_HOME}/contrib/vaidya 目录下没有,则需要使用ant package -Dforrest={forrest.home} 编译hadoop源代码,生成vaidya。
二,vaidya运行环境
vaidya运行主要是通过${vaidya_home}/bin/vaidya.sh来运行。
运行必须配置${HADOOP_HOME}和${JAVA_HOME}环境变量。
如果配置成功,运行命令 shvaidya.sh help,则显示如下
三,vaidya运行时错误
1,错误提示:java.lang.ClassNotFoundException:org.apache.hadoop.vaidya.postexdiagnosis.PostExPerformanceDiagnoser
出现原因和解决办法:该问题出现主要是由于默认编译产生的hadoop-core*.jar等类库版本号命名问题导致的。
打开{vaidya.home}/bin/vaidya.sh,将
$JAVA_HOME/bin/java -Xmx1024m-classpath$HADOOP_HOME/hadoop-${hadoopVersion}-core.jar:$HADOOP_HOME/contrib/vaidya/hadoop-${hadoopVersion}-vaidya.jar:$HADOOP\_HOME/lib/commons-logging-1.0.4.jar:${CLASSPATH}org.apache.hadoop.vaidya.postexdiagnosis.PostExPerformanceDiagnoser $@
改为:
$JAVA_HOME/bin/java -Xmx1024m-classpath$HADOOP_HOME/hadoop-core-${hadoopVersion}.jar:$HADOOP_HOME/contrib/vaidya/hadoop-vaidya-${hadoopVersion}.jar:$HADOOP_HOME/lib/commons-logging-1.0.4.jar:${CLASSPATH}org.apache.hadoop.vaidya.postexdiagnosis.PostExPerformanceDiagnoser $@
2,错误提示:Exception:java.net.MalformedURLException: unknown protocol: hdfsjava.net.MalformedURLException: unknown protocol: hdfs 或者 Exception:java.net.MalformedURLException: no protocol
出现问题和解决办法:该问题主要是由于vaidya运行时默认以file:///xxxx的文件绝对路径方式对-jobconf,-joblog参数赋值,因此当使用hdfs或者相对路径时无法识别。
四,使用vaidya进行map/reduce运行优化
首先执行map/reduce应用程序,数据最终输出到hdfs://sstrtst20:8020/user/root/output目录,将hdfs://sstrtst20:8020/user/root/output/_logs/history/中的所有文件利用hadoop fs -get 命令拷贝到本地磁盘系统。
执行vaidya命令如下:
sh vaidya.sh -jobconf file:///usr/local/hadoop/contrib/vaidya/bin/sstrtst20_1325727174096_job_201201050932_0001_conf.xml -joblog file:///usr/local/hadoop/contrib/vaidya/bin/sstrtst20_1325727174096_job_201201050932_0001_root_Join -testconf /usr/local/hadoop/contrib/vaidya/conf/postex_diagnosis_tests.xml -report ./report.xml
执行后console输出:
优化记录输出在 report.xml中
五,如何分析report.xml输出内容
如下图:
- TestReportElement 表示vaidya测试优化的目标内容
- TestTitle 表示测试优化的内容主题
- TestDescription 表示测试优化的规则描述
- TestImportance 表示测试重要性程度,按照(HIGN,MEDIUM,LOW)
- TestResult 根据map/reduce执行的默认配置值进行评估,主要有NEGATIVE(PASSED),POSITIVE(FAILED)
- TstSeverity 严重性影响程度(0~1?)
- ReferenceDetails 运行期内打印信息
- TestPrescription 当测试不通过时,为用户提供了一些针对性的测试用例和意见。
例如下图中测试不通过:
posted on 2012-03-21 11:48 reck for zhou 阅读(1001) 评论(0) 编辑 收藏 举报