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编辑  收藏  举报

导航