Utilities.getBucketIdFromFile → Integer.parseInt에서 긴 숫자 파일명이 bucket ID로 처리된다.
오류 위치는 파일명에서 bucket ID를 해석하는 부분이므로 데이터 컬럼을 BIGINT로 바꾸는 해법과 다르다. 원본에는 원인을 찾았다는 통보만 있어 재작성은 조건부 추가 해법이다.
bucket metadata와 파일 배치의 불일치를 확인한다. 읽을 수 있는 원본을 비버킷 staging으로 등록하고 Hive writer로 새 bucket 테이블을 재작성한다.
확인 수준: 추가 조사 해법 · 해당 케이스 적용 결과 미확인
적용 조건: <...>와 예시 DB·테이블·경로·수치는 실제 확인값으로 바꾼다. 명령과 메뉴는 참고 문서를 바탕으로 보강한 예시이며 대상 시스템에서 실행하지 않았다. 버전·원인에 따른 분기와 남은 확인 사항은 아래에 명시한다.
SHOW CREATE TABLE db.bucket_table;
DESCRIBE FORMATTED db.bucket_table;
SET hive.tez.bucket.pruning;
SET hive.tez.bucket.pruning=false;
SELECT COUNT(*) FROM db.bucket_table;
hdfs dfs -ls '<table-or-partition-location>'
CLUSTERED BY (...) INTO ... BUCKETS 정의로 새로 만들고 Hive INSERT SELECT로 재작성한다. ACID 테이블의 bucket 파일을 수동 rename하거나 날짜 숫자만 바꾸지 않는다.새 bucket 테이블의 건수·집계·bucket 조건 조회가 일치하고 해당 stack trace가 사라지는지 확인한다.