zoukankan      html  css  js  c++  java
  • 监控hadoop任务结果shell脚本

    需求:每日hadoop结果文件中,找出数据不完整的日期和没有跑出数据的日期,重新进行跑hadoop任务

    1. 分析:在result/目录生成的文件中数据有2个特点
      1. 第一:日期有,但是数据不完整
      2. 第二:日期对应的文件不存在(文件缺失)
    #/bin/sh
    # 第一步:先打开结果文件目录(result),将目录的文件存在一个列表中
    time_list=()
    i=0
    dir=`cd ~/result/`
    for i in $dir
    do
        echo $i
        time_list[$i]=$i
        i=$(($i+1))
    done
    # 构建要查询的时间段
    date=20170101
    end_date=20170111  # 注意在这里是前包,后不包
    while [[ $date -lt $end_date ]]
    do
        echo "$date".txt
        # 第二步:判断构建文件是否存在与结果文件的列表中,如果存在,就检查数据量是否位数是否大于9位(单位:bytes)
        if [[ "$time_list" =~ "$date".txt ]];then
            # 计算每个文件的数据量的大小
            data_num=`du -b $i* | awk '{sum += $1}; END{print sum}'`  # 把查询文件量大小的命令赋值给date_num
            echo "command(du -b $i* | awk '{sum += $1}; END{print sum}') results are: $data_num"  # 执行查询命令,并把结果赋值给data_num变量
            echo $data_num
            # echo ${#data_num}
            if [ ${#data_num} -lt 3 ];then  # 判断参选出的数据的位数
                `touch  ~/result/${date}.txt`
            fi
        else
            `touch ~/result/${date}.txt`
        fi
        date=$(($date+1))
    
    done

    小结:当然这个也是调试的时候用的,不过真正,你要根据自己的需求去做,这时,忽然在我的脑子里出现了一个demo侠的名称,因为之前,我看了一篇我们公司内部的写的文章,学习分为几个阶段吧,因为我之前也没有写过shell,所以在写这个需求的时候,起哦也查了很多的资料,发现他们写的都差不多,和我之前写的博客差不多,没有什么干货,都是点演示,俗称demo侠。就是对一个知识点你可能看一遍,演示一遍,觉得知道他是什么意思了,但是真正项目需求用的时候,你就会发现,你是不理解的。所以我在这种情况下,又重新学习了一下,忽然感觉对原来的知识点又了不一样的理解,这时我想起了一篇文章,深度学习分为这么几个阶段:demo侠——>调参侠——>懂原理侠——>懂原理+修改模型细节侠——>超大数据操控侠——>模型/框架架构师,入门级别是懂原理侠。所以学习好事要多思考,结合实际情况去解决问题,去学习,这样的途径是你对知识点掌握最牢靠的,也是理解最透彻的。

  • 相关阅读:
    leetcode 309. Best Time to Buy and Sell Stock with Cooldown
    leetcode 714. Best Time to Buy and Sell Stock with Transaction Fee
    leetcode 32. Longest Valid Parentheses
    leetcode 224. Basic Calculator
    leetcode 540. Single Element in a Sorted Array
    leetcode 109. Convert Sorted List to Binary Search Tree
    leetcode 3. Longest Substring Without Repeating Characters
    leetcode 84. Largest Rectangle in Histogram
    leetcode 338. Counting Bits
    git教程之回到过去,版本对比
  • 原文地址:https://www.cnblogs.com/ljc-0923/p/10988422.html
Copyright © 2011-2022 走看看