Big Data/HDFS

HDFS - Under Replicated Blocks 해결 방법

신씅 2016. 8. 18. 15:53
HDFS 의 Datanode 가  dfs.replication 속성보다 적은 수 만큼 설치/실행 되어 있으면 Under Repicated Block 들이 발생합니다.
Under Replicated Block 을 없애기 위해 dfs.replication 을 설치 된 Datanode 수 만큼로 변경하고 HDFS 를 재시작 하더라도 이 숫자들은 줄어들지 않습니다.

아마, 이 설정이 바뀐다 하더라도 기존 파일들은 기존에 설정된 replication 만큼을 그대로 유지하고 새롭게 생성되는 파일에 대해서만 변경된 replication 수 만큼 block 을 복제하는 듯 합니다.

이러한 경우 기존 파일들의 replication 정보를 강제로 변경하여 Under Replicated Block 을 없앨 수 있습니다.

$ su - <$hdfs_user>
$ hdfs fsck / | grep 'Under replicated' | awk -F':' '{print $1}' >> /tmp/under_replicated_files 
$ for hdfsfile in `cat /tmp/under_replicated_files`; do echo "Fixing $hdfsfile :" ;  hadoop fs -setrep 3 $hdfsfile; done

위 명령어에서 -setrep 의 옵션을 Datanode 의 수 만큼 설정하면 됩니다.


'Big Data > HDFS' 카테고리의 다른 글

HDFS safemode 설정  (0) 2016.03.11