首页 > 其他分享 >统计Hadoop空间增量

统计Hadoop空间增量

时间:2023-10-17 16:07:08浏览次数:27  
标签:used space Hadoop current 增量 date txt remaining 统计

#!/bin/bash

# 设置Hadoop路径
hadoop_path="/path/to/hadoop"

# 获取当前日期
current_date=$(date +%Y-%m-%d)

# 获取Hadoop集群中各个目录的总空间大小,并保存到文件
$hadoop_path/bin/hdfs dfs -du -s -h /user > current_space.txt

# 用awk命令提取目录名称和空间大小,并保存到文件
awk '{print $1, $2}' current_space.txt > current_space_formatted.txt

# 检查上一次记录的空间文件是否存在
if [ -f last_space.txt ]; then
    # 对比两次空间文件,计算空间增长情况,并保存到文件
    diff -y --suppress-common-lines last_space.txt current_space_formatted.txt > "space_growth_$current_date.txt"
    
    # 打印空间增长情况
    echo "Space Growth on $current_date:"
    cat "space_growth_$current_date.txt"
else
    echo "No previous space record found."
fi

# 将当前空间文件备份为上一次空间记录文件
cp current_space_formatted.txt last_space.txt

# 设置Hadoop路径
HADOOP_HOME="/path/to/hadoop"

# 创建保存磁盘使用信息的文件
USAGE_FILE="/path/to/usage.txt"

# 获取当前日期
current_date=$(date +%Y-%m-%d)

# 检查上一次记录的磁盘使用信息文件是否存在
if [ -f "$USAGE_FILE" ]; then
    # 读取上一次记录的磁盘使用信息
    while IFS=' ' read -r date used
    do
        last_date=$date
        last_used=$used
    done < "$USAGE_FILE"

    # 获取当前日期和使用情况
    new_used=$($HADOOP_HOME/bin/hdfs dfs -df -h /path/to/hdfs | awk 'NR==2{print $5}')
    new_date=$current_date

    # 计算每日增量
    used_diff=$((new_used - last_used))
    date_diff=$(($(date -d "$new_date" +%s) - $(date -d "$last_date" +%s)))
    daily_increment=$(($used_diff / (($date_diff / (60 * 60 * 24)) + 1)))
else
    # 第一次执行脚本,获取当前日期和使用情况
    new_used=$($HADOOP_HOME/bin/hdfs dfs -df -h /path/to/hdfs | awk 'NR==2{print $5}')
    new_date=$current_date

    # 设置默认值为
    daily_increment=
fi

# 将当前日期和使用情况保存到文件中
echo "$new_date $new_used" > "$USAGE_FILE"

# 查询当前服务器剩余磁盘预计剩余使用天数
remaining_space=$($HADOOP_HOME/bin/hdfs dfs -df -h /path/to/hdfs | awk 'NR==2{print $4}')
remaining_duration=""
if ((remaining_space >= )); then
    case $remaining_space in
        *T) remaining_duration="较长时间";;
        *G) remaining_duration="几天到几个月";;
        *M) remaining_duration="几小时到几天";;
        *K) remaining_duration="不足一小时";;
        *) remaining_duration="不足一小时";;
    esac
else
    remaining_duration="未知"
fi

# 打印磁盘使用情况和剩余空间预计使用时间
echo "当前日期:$new_date"
echo "每日增量:$daily_increment"
echo "剩余空间:$remaining_space"
echo "预计剩余使用天数:$remaining_duration"


标签:used,space,Hadoop,current,增量,date,txt,remaining,统计
From: https://blog.51cto.com/u_16133235/7904878

相关文章

  • 统计es每天增加的索引和空间使用情况
    #!/bin/bash#Elasticsearch集群的URLes_url="http://localhost:9200"#索引名称的前缀(假设索引名称为"logs-2023.06.15")index_prefix="logs-"#获取当前日期current_date=$(date+%Y.%m.%d)#获取前一天的日期previous_date=$(date-d"yesterday"+......
  • HBase-统计表总行数的三种方式
     由于Hbase是列式数据库,没有提供类似SQL的数据查询语句,可以通过以下三种方式获取表的总行数。1.使用Hbase自带的Count命令      hbase提供了count命令可以在hbase交互界面使用,获取总行数。hbase>count‘test′hbase>count‘test′,INTERVAL=>100000 ......
  • 给定字符串str= "asdfasdweraasdfasdf", 请python统计每个字符出现的次数,并将结果进行
    str="asdfasdweraasdfasdf"char_count={}forcharinstr:ifcharinchar_count:char_count[char]+=1else:char_count[char]=1forchar,countinchar_count.items():print(f"字符'{......
  • 使用visual studio 2022统计项目代码总行数
    第一步打开项目解决方案,第二步使用快捷键打开查找对话框1)输入:b*[^:b#/]+.*$2)使用正则表达式3)查找范围:整个解决方案4)查找全部......
  • 增量模型
            ......
  • 离线统计,建立日表、周表、月表
    经理让我做一个离线统计,建立日表、周表、月表当时就有些心虚加崩溃,因为乍一听很牛的样子,但是我之前没有接触过,他偏偏还说,你以前应该做过吧……经过我不懈的心惊胆战和求助和豁然开朗和再次讨论和自我修改迭代的基础上,我把这个需求搞懂了并且表也建好了1、为什么有这个需求?因......
  • 统计问题
    --(1)2021年至今天为止签订的合同(不含付款合同)里面,一共有多少个客户(相同的客户要合并算作一个);1171--(2)2021年至今天为止签订的合同(不含付款合同)里面,帮我统计一个清单,就是累计合同签订额最高的15个客户。--1,合同金额不为0select(selectobjnamefromcustomerwhereid=info.extr......
  • Linux 中find命令 查找一类文件并统计这类文件总的大小
     001、(base)[b20223040323@admin1NTlibrary]$findnt.01*|xargsdu-sch##查找一类文件,并统计总的大小,-c表示总计76Mnt.01.nhd1.7Mnt.01.nhi797Mnt.01.nhr50Mnt.01.nin42Mnt.01.nnd168Knt.01.nni17Mnt.01.nog2.8Gnt.01......
  • Elasticsearch——terms聚合实现搜索热词统计
     最近项目中遇到一个需求。需要实现热词功能,需要给用户展示检索频率最高的10个关键字;由于项目中使用到了es,所以就使用es实现,具体实现如下:前提,拥有es环境;1、创建索引:POSThttp://localhost:9200/hotwords_test/_mapping{"properties":{"search_txt":{......
  • hadoop集群 大数据项目实战_电信用户行为分析_day02
    集群配置好后,运行一个小例子,统计单词1.hdfsdfs-put将本地系统的文件或文件夹复制到HDFS上2.hdfsdfs-ls/output  将所有的文件显示出来3.hdfsdfs-cat/output/ 将所有的文件读取出来 下载part-r-000000安装Redis1.下载Rediswgethttps://download.redis.i......