统计 HDFS 的小文件个数

使用 hdfs oiv 命令解析 namenode fsimage 文件,输入为 , 号分隔的文本文件

hdfs oiv -i $fsimage -t /data1/zpf/ops/small_file/tmp/ -o /data1/zpf/ops/small_file/fsimage.txt -p Delimited -delimiter ,

在hive上建一个表

将数据 put 到 hive 表对应的 hdfs 目录上

hadoop fs -put -f /data1/zpf/ops/small_file/fsimage.txt $hdfs_path

使用 hive sql 对组和用户进行分组统计

select groupname,username,count(1) filenum from ocdp.analysis where replication <>0 and username <> '-1' and filesize < $small_file_size group by groupname,username;

通过 beeline 将执行结果写入 csv 文件

beeline -u "$beeline_url" --outputformat=csv2 -e "select groupname,username,count(1) filenum from ocdp.analysis where replication <>0 and username <> '-1' and filesize < $small_file_size group by groupname,username;" > /data1/zpf/ops/small_file/analysis.csv

然后将 csv 结果解析写入 MySQL

for str in `cat /data1/zpf/ops/small_file/analysis.csv|tail -n +2`
do
  g=`echo $str|awk -F ',' '{print $1}'`
  u=`echo $str|awk -F ',' '{print $2}'`
  s=`echo $str|awk -F ',' '{print $3}'`
  sql="insert into filesize_simple (cluster_name,group_name,user_name,file_num) values ('bjtelcluster','$g','$u','$s')"
  #echo $sql
  mysql -h$db_host -D$db_database -u$db_user -e "$sql"
done

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值