손상된 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 hdfs
sudo 사용자가 아닌 경우 사용해야 할 수도 있습니다 ( "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
'programing' 카테고리의 다른 글
데이터 세트를 가져올 때 문제 :`Error in scan (…) : line 1 did not have 145 elements` (0) | 2021.01.14 |
---|---|
Xcode 5 앱 제출 문제 (0) | 2021.01.14 |
JSON에 덤프는 추가 큰 따옴표와 따옴표 이스케이프를 추가합니다. (0) | 2021.01.14 |
유형이 제네릭 인터페이스를 구현하는지 확인 (0) | 2021.01.14 |
TestNG를 사용한 스프링 종속성 주입 (0) | 2021.01.14 |