vaidya初试

 

vaidya介绍
        vaidya是一个hadoop map/reduce优化工具,主要根据hadoop map/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}环境变量。
        如果配置成功,运行命令 sh vaidya.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  当测试不通过时,为用户提供了一些针对性的测试用例和意见。
 
    例如下图中测试不通过:


 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值