• 几个简单的例子


    Disk_Throughput_Test.sh

    Hadoop_copyFromLocal_Test.sh

    #!/bin/bash
    IOtest="/data1/testdata/IOtest"
    host="/data1/perf_share/$(hostname)_$(date -d "today"+"%Y%m%d_%H%M%S")_$i"
    #删除表格
    rm -f /data1/perf_share/*.xls
    #删除.dat文件
    rm -f /data1/perf_share/*.dat
    #执行三次循环以取得平均值
    for((i=1;i<=3;i++))
    do
    #删除临时文件
    rm -f $IOtest
    cd /data1/testtools/
    #创建一个16G的数据并把吞吐量写入.dat中
    ./iozone -s 16g -r 16k -i 0 -i 1 -f $IOtest -Rb $host.xls > $host.dat
    #./iozone -s 3m -r 16k -i 0 -i 1 -f $IOtest -Rb $host.xls > $host.dat
    done
    dir="/data1/perf_share/"
    #删除记录文件
    rm -f $dir$(hostname).txt
    #进入/data1/perf_share/目录
    cd $dir
    #让filelist表示显示目录文件
    filelist=`ls $dir`
    #写入数据量赋值为零
    iothroughput_write=0
    #读取数据量赋值为零
    iothroughput_read=0
    #循环处理文件
    for filename in $filelist
    do
            #只处理文件后缀名为dat或DAT的文件
            if [ "${filename##*.}" == "dat" ]||[ "${filename##*.}" == "DAT" ]; then
    #               file=${filename%.*}
                    echo "$filename has been done"
                    #累加写入数据量
                    let "iothroughput_write+=`sed -n '35p' $filename|cut -c11-|awk '{gsub(/ /,"")}1'`"
                    #累加读取数据量
                    let "iothroughput_read+=`sed -n '43p' $filename|cut -c11-|awk '{gsub(/ /,"")}1'`"
                    echo $iothroughput
            fi
    done
    #计算平均值
    let "iothroughput_write/=3072"
    let "iothroughput_read/=3072"
    #写入文件记录
    echo $(hostname)":顺序 Writer is in MB/sec:"$iothroughput_write>>/data1/perf_share/$(hostname).txt
    echo $(hostname)":顺序 Read is in MB/sec:"$iothroughput_read>>/data1/perf_share/$(hostname).txt
    #上传到104
    scp /data1/perf_share/$(hostname).txt qunzhihe@192.168.5.104:/data1/perf_share/

    #!/usr/bin/env bash
    #--------变量---------
    #测试用例名称
    DISK_IO_LOG_TEST_NAME="hadoop_copyFromLocal_TEST"
    #测试结果描述
    DISK_IO_RESULT="未定义"
    #处理过程内容
    DISK_IO_LOG_TEST_PROC_CONTENT=""
    #测试用例开始时间
    DISK_IO_BEGIN_DATE=""
    #测试用例结束时间
    DISK_IO_END_DATE=""

    #import child shell
    . ./writelog.sh

    get_time()
    {
      local yourdate=$*`date   +%Y-%m-%d_%H:%M:%S`
      echo $yourdate
    }

    run_hadoop_copyFromLocal_test()
    {
    DISK_IO_BEGIN_DATE="$(get_time)"
    h=0
    m=0
    net_io=0
    report="/data1/perf_share?HDFS_CopyFromLocal_Test.report"
    > $report
    for a in `cat /data1/iptest`
    do
    #       ssh $a 'rm -f /data1/testdata/50G.dat'
            input="/data2/20G.dat"
            output="/IOService/20.$a.dat"
            log="/data1/perf_share/HDFS_CopyFromLocal_time_$a.log"
            ssh $a /usr/bin/time -o $log hadoop fs -copyFromLocal $input $output
            scp qunzhihe@$a:$log /data1/perf_share/
            cd /data1/perf_share/
            h=`sed -n '1p' $log |awk '{print $3}'|sed 's/elapsed//g'|sed 's/:/ /g'|awk '{print $1}'`
            m=`sed -n '1p' $log |awk '{print $3}'|sed 's/elapsed//g'|sed 's/:/ /g'|awk '{print $2}'`
    #       echo $h
    #       echo $m
    #       echo 'scale=2;(20*1024)/($(h)*60+$(m))'|bc
            net_io=`echo "$h $m" | awk '{printf("%0.2f\n",(20*1024)/($1*60+$2))}'`
            echo $net_io
            echo $a"上执行copyFromLocal,集群的吞吐量是 in MB/sec:"$net_io >> $report
            ssh $a hadoop fs -rm /IOService/20.$a.dat
    done
    DISK_IO_END_DATE="$(get_time)"
    cd /data1/perf_share
    DISK_IO_LOG_TEST_PROC_CONTENT=`cat HDFS_CopyFromLocal_Test.report`
    addRunProcLog "${DISK_IO_LOG_TEST_NAME}" "${DISK_IO_RESULT}" "${DISK_IO_BEGIN_DATE}" "${DISK_IO_END_DATE}" "${DISK_IO_LOG_TEST_PROC_CONTENT}"
    cd -
    }

    Hadoop_copyToLocal_Test.sh

    #!/usr/bin/env bash
    #--------变量---------
    #测试用例名称
    DISK_IO_LOG_TEST_NAME="hadoop_copyToLocal_TEST"
    #测试结果描述
    DISK_IO_RESULT="未定义"
    #处理过程内容
    DISK_IO_LOG_TEST_PROC_CONTENT=""
    #测试用例开始时间
    DISK_IO_BEGIN_DATE=""
    #测试用例结束时间
    DISK_IO_END_DATE=""

    #import child shell
    . ./writelog.sh
    #获取本地时间函数声明
    get_time()
    {
    #读取本地时间
      local yourdate=$*`date   +%Y-%m-%d_%H:%M:%S`
    #显示当前时间
     echo $yourdate
    }
    #hadoop效率测试函数声明
    run_hadoop_copyToLocal_test()
    {
    #读取当前系统时间并设为测试用例开始时间
    DISK_IO_BEGIN_DATE="$(get_time)"
    h=0
    m=0
    net_io=0
    report="/data1/perf_share/HDFS_CopyToLocal_Test.report"
    #清空Test.report文件内容
    > $report
    #循环读取ip地址
    for a in `cat /data1/iptest`
    do
    //   
    #无密登录$a并删除/data2/20G.dat
            ssh $a 'rm -f /data2/20G.dat'
            input="/IOService/20G.dat"
            output="/data2"
            log="/data1/perf_share/HDFS_CopyToLocal_time_$a.log"
    无密登录$a后把测试数据从集群下载到$a并记录时间到log
            ssh $a /usr/bin/time -o $log hadoop fs -copyToLocal $input $output
    #复制$a上的.log文件到本地
            scp qunzhihe@$a:$log /data1/perf_share/
    #进入.log所在文件夹
            cd /data1/perf_share/
            h=`sed -n '1p' $log |awk '{print $3}'|sed 's/elapsed//g'|sed 's/:/ /g'|awk '{print $1}'`
            m=`sed -n '1p' $log |awk '{print $3}'|sed 's/elapsed//g'|sed 's/:/ /g'|awk '{print $2}'`
    #       echo $h
    #       echo $m
    #       echo 'scale=2;(20*1024)/($(h)*60+$(m))'|bc
    #算出吞吐速度并赋值
            net_io=`echo "$h $m" | awk '{printf("%0.2f\n",(20*1024)/($1*60+$2))}'`
    #显示速度
            echo $net_io
    把$a与集群间数据吞吐速度追加到本地的Test.report中
            echo $a"上执行copyToLocal,集群的吞吐量是 in MB/sec:"$net_io >> $report
    done
    DISK_IO_END_DATE="$(get_time)"
    cd /data1/perf_share
    DISK_IO_LOG_TEST_PROC_CONTENT=`cat HDFS_CopyToLocal_Test.report`
    addRunProcLog "${DISK_IO_LOG_TEST_NAME}" "${DISK_IO_RESULT}" "${DISK_IO_BEGIN_DATE}" "${DISK_IO_END_DATE}" "${DISK_IO_LOG_TEST_PROC_CONTENT}"
    cd -
    }

  • 相关阅读:
    struts2校验器规范错误解决
    java extend 和 implements 的区别
    Java 中 synchronized的用法详解
    事件处理程序
    Web字体(链接)嵌入
    常见浏览器bug(针对IE6及更低版本)及其修复方法
    canvas实现的时钟效果
    SSM(springMVCspringmybatis)环境搭建01建立Mavenweb项目
    Android中关于软键盘的一些设置
    Android调用系统相机和相册
  • 原文地址:https://www.cnblogs.com/luwikes/p/2176590.html
Copyright © 2020-2023  润新知