programing

손상된 HDFS 파일을 수정하는 방법

firstcheck 2021. 1. 14. 08:32
반응형

손상된 HDFS 파일을 수정하는 방법


누군가 손상된 HDFS를 어떻게 수정합니까? Apache / Hadoop 웹 사이트를 살펴 보았는데 fsck명령을 내 렸는데 문제가 해결되지 않았습니다. 이 문제를 겪은 적이있는 사람이이 문제를 해결하는 방법을 알려줄 수 있기를 바랍니다.

원시 파일 시스템 용 기존 fsck 유틸리티와 달리이 명령은 감지 된 오류를 수정하지 않습니다. 일반적으로 NameNode는 대부분의 복구 가능한 오류를 자동으로 수정합니다.

를 실행했을 때 bin/hadoop fsck / -delete손상되었거나 블록이 누락 된 파일이 나열되었습니다. 손상되지 않게하려면 어떻게해야합니까? 이것은 연습 기계에 있기 때문에 모든 것을 날려 버릴 수는 있지만, 라이브에 가면 모든 것을 날려 버려서 "고칠"수 없기 때문에 지금 알아 내려고합니다.


당신이 사용할 수있는

  hdfs fsck /

문제가있는 파일을 확인합니다. 누락되거나 손상된 블록이 있는지 출력을 살펴 봅니다 (지금은 복제되지 않은 블록은 무시). 이 명령은 특히 큰 HDFS 파일 시스템에서 매우 장황하므로 일반적으로 의미있는 출력으로 내려갑니다.

  hdfs fsck / | egrep -v '^\.+$' | grep -v eplica

복제에 대해 말하는 점과 선만있는 줄을 무시합니다.

손상된 파일을 찾으면

  hdfs fsck /path/to/corrupt/file -locations -blocks -files

해당 출력을 사용하여 블록이 존재할 수있는 위치를 결정합니다. 파일이 블록 크기보다 크면 여러 블록이있을 수 있습니다.

보고 된 블록 번호를 사용하여 데이터 노드 및 블록이있는 머신을 검색하는 네임 노드 로그로 이동할 수 있습니다. 해당 시스템에서 파일 시스템 오류를 찾아보십시오. 마운트 지점 누락, 데이터 노드가 실행되지 않음, 파일 시스템 재 포맷 / 재 프로비저닝 됨. 그런 식으로 문제를 발견하고 블록을 다시 온라인 상태로 만들면 해당 파일이 다시 정상 상태가됩니다.

모든 파일이 정상이 될 때까지 거품을 헹구고 반복하거나 블록을 찾는 모든 대안을 소진하십시오.

무슨 일이 일어 났는지 확인하고 더 이상 블록을 복구 할 수 없으면

  hdfs fs -rm /path/to/file/with/permanently/missing/blocks

명령을 사용하여 HDFS 파일 시스템을 정상 상태로 되 돌리면 새 오류가 발생할 때 추적을 시작할 수 있습니다.


HDFS를 정상 상태로 되돌리고 데이터에 대해 많이 걱정하지 않으려면

그러면 손상된 HDFS 블록이 나열됩니다.

hdfs fsck -list-corruptfileblocks

이렇게하면 손상된 HDFS 블록이 삭제됩니다.

hdfs fsck / -delete

sudo -u hdfssudo 사용자가 아닌 경우 사용해야 할 수도 있습니다 ( "hdfs"가 sudo 사용자의 이름이라고 가정).


여기 솔루션이 저에게 효과적 이었습니다 : https://community.hortonworks.com/articles/4427/fix-under-replicated-blocks-in-hdfs-manually.html

su - <$hdfs_user>

bash-4.1$ hdfs fsck / | grep 'Under replicated' | awk -F':' '{print $1}' >> /tmp/under_replicated_files 

-bash-4.1$ for hdfsfile in `cat /tmp/under_replicated_files`; do echo "Fixing $hdfsfile :" ;  hadoop fs -setrep 3 $hdfsfile; done

모든 데몬을 시작하고 "hadoop namenode -recover -force"명령을 실행하여 데몬을 중지하고 다시 시작합니다. 데이터를 복구 할 때까지 잠시 기다리십시오.

참조 URL : https://stackoverflow.com/questions/19205057/how-to-fix-corrupt-hdfs-files

반응형