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 |
---|