Hadoop HDFS에서 디렉토리별 사용량 체크를 하는 방법

HDFS를 사용하다보면 directory 별로 디스크 사용량 체크가 필요하다. 아래와 같이 Permission denied 에러가 발생할것이다. 그 이유는 ROOT의 사용량 조회를 일반 유저 아이디로는 조회가 불가능하기 때문이다. 루트를 포함해 디스크 용량을 확인하기 위해서는 모든 키를 갖고 있는 HDFS 유저로 조회를 하면 된다.

du: Permission denied: user=icecream, access=READ_EXECUTE, inode="/user/hue/.Trash":hue:hue:drwx------

``` sudo -u hdfs hdfs dfs -du -s | sort -r -k 1 -g | awk '{ suffix="KMGT"; for(i=0; $1>1024 && i < length(suffix); i++) $1/=1024; print int($1) substr(suffix, i, 1), $3; }'

example

sudo -u hdfs hdfs dfs -du -s /data/* | sort -r -k 1 -g | awk '{ suffix="KMGT"; for(i=0; $1>1024 && i < length(suffix); i++) $1/=1024; print int($1) substr(suffix, i, 1), $3; }' ```

+ Recent posts