[hadoop] Txid 트러블 슈팅

최지영·2023년 8월 9일
0

✨ Hadoop Namenode Txid 트러블 슈팅

📌 Txid란?


Hadoop 계열 을 다루다 보면 Txid라는 로그를 자주 볼 수있는데 Transaction Id 줄임말로 파일 시스템에 변경 작업을 식별하고 기록하는데 사용되는 고유 숫자로 사용되며
각각 변경작업(블록 추가, 파일 생성 삭제 등)은 HDFS에서 트랜잭션으로 기록하며 이걸 Txid로 식별하는데 사용하며 정수형인 Txid는 Edit Log(파일 시스템 변경 이력을 기록) 에 기록

🧾 에러 내용

아래와 같이 에디트 로그에서 차이가 있다고 알려주는 현상이 생김과 동시에 네임노드를 실행시켜도 실행되지 않음

java.io.IOException: There appears to be a gap in the edit log. We expected txid ***, but got txid

🎇 해결 순서


해결 방법으론 Hadoop 의 recover 기능을 사용했으며 사용 커맨드는 아래와 같다.

1. 위 커맨드를 실행 시키고 나면 복구모드를 선택했다고 하며 종종 HDFS 파일 시스템에서 데이터를 영구적으로 삭제한다고 하니 하기전에 편집 로그와 fsimage를 백업하라고 경고 문구가 나옴
hadoop namenode -recover
2. 실행여부에 대한 선택
Are you ready to proceed? (Y/N)
Y
Enter 'c' to continue, ignoring missing  transaction IDs
Enter 's' to stop reading the edit log here, abandoning any later edits
Enter 'q' to quit without saving
Enter 'a' to always select the first choice in the future without prompting. (c/s/q/a)
3. 손실된 transaction IDs 무시

c를 눌러 진행

4. 네임노드 재실행
hdfs --daemon start namenode

1개의 댓글

comment-user-thumbnail
2023년 8월 9일

큰 도움이 되었습니다, 감사합니다.

답글 달기