본문 바로가기
Hadoop

[Hadoop] Distcp 시 Check-sum mismatch 현상

by 초이MS 2020. 6. 8.

상황

  • Distcp시에 IOException이 발생하며 다음과 같은 에러메시지가 나온다.
Error: java.io.IOException: File copy failed: ...
Caused by: java.io.IOException: Couldn't run retriable-command: ...
Caused by: java.io.IOException: Check-sum mismatch between ... Source and target differ in block-size. Use -pb to preserve block-sizes during copy. Alternatively, skip checksum-checks altogether, using -skipCrc. (NOTE: By skipping checksums, one runs the risk of masking data-    corruption during file-transfer.)...

해결 과정

  • 에러 메시지에서 알 수 있듯, source hdfs와 destination hdfs의 블록사이즈가 달라서 발생하는 에러이다.
  • distcp 시에 다음의 옵션을 추가하여 문제를 해결할 수 있다.
hadoop distcp -pbc ${source_uri} ${dest_uri}
  • -p 옵션은 파일의 특성을 보존한다는 의미이며, b는 block size, c는 checksum-type을 의미한다.
  • 즉, source hdfs의 block size, checksum-type을 유지하여 distcp를 실행한다.

결론

  • distcp 시 옵션으로 -pbc를 추가한다.

참고

반응형

'Hadoop' 카테고리의 다른 글

[Hadoop] HDFS에서 S3로 Distcp  (0) 2022.01.17
[Hadoop] 특수문자(wildcard)가 들어간 경로 삭제  (0) 2020.06.09

댓글