Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #! /usr/bin/env bash
- LOCAL="/user/hjudge/"
- FILENAME="testFile"
- dd if=/dev/zero of=$FILENAME bs=$1 count=1
- hdfs dfs -Ddfs.replication=1 -put $FILENAME
- hdfs fsck $LOCAL$FILENAME -files -blocks -locations | grep -i 'blk_' \
- | while read line;
- do
- ID="$(echo "$line" | awk '{print $2;}' \
- | awk '{print substr($0,index($0,":") + 1);}' | awk '{print substr($0,index($0,"_") + 1);}' \
- | awk '{print "blk_"substr($0,0,index($0,"_") - 1);}')";
- NODE="$(hdfs fsck -blockId $ID | grep -i "^Block replica" | head -n 1 | awk '{print substr($5,0,index($5,"/") - 1);}')";
- echo $NODE
- sudo -u hdfsuser ssh hdfsuser@$NODE "cd /dfs/; find -name $ID && exit" < /dev/null
- done > file
- SUM=0
- while read node;
- do
- read path
- location="$(echo $path | awk '{print "/dfs"substr($0,2)}')"
- NUM="$(sudo -u hdfsuser ssh hdfsuser@$node "ls -l $location && exit" < /dev/null | awk '{print $5}')"
- SUM="$(echo $SUM $NUM | awk '{$1+=$2; print $1}')"
- done < file
- echo $SUM $1 | awk '{$2-=$1; print $2}'
- rm file
- hdfs dfs -rm $FILENAME
- rm $FILENAME
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement