이전 사유
HDP 라이센스 문제로 Hadoop-EchoSystem 재구축함에 따라 HDFS, Hive의 버전을 변경하게 됬다
- HDFS 2.7.3 -> 3.1.1
- Hive 1.6.3 -> 3.1.2
이전 방법
데이터 복사
# hdfs dfs -cp -f -p src dist
hdfs dfs -cp -f -p hdfs://기존HDFS 주소/기존 테이블 경로/* hdfs://이전될 HDFS 주소/기존 테이블 경로
- (hdfs://이전될 HDFS 주소) 은 명령어 실행위치가 loacal이면 생략해도 된다.
- option ( 필요 없다면 생략 가능 )
- f : 덮어쓰기
- p : 파일정보 그대로 가져가기 e.g 생성일자, 생성 user, group.. 등
복사(전송) 확인
# hdfs dfs -ls path
hdfs dfs -ls /apps/hive/dbName/tbName
drwxr-xr-x - hive hadoop 0 2022-09-15 19:38 /apps/hive/dbName/tbName
.....
- 위와 같이 기존과 동일한 hive partition 구조로 디렉토리 및 파일이 잘 전송됬으면 된다.
- (hdfs://이전될 HDFS 주소) 은 명령어 실행위치가 loacal이면 생략해도 된다.
테이블 인식
msck repair table bd명.tb명;
- 위와 같이 테이블 복구(
msck repair
)를 해주면 끝이다.- hdfs에는 옮겨졌지만, metastore은 인식하고 있지 않으니
msck repair
을 해줘야한다 - 궁금하다면 msck를 하기전에 조회를 해보고, msck를 한 후 조회를 해보면 msck를 한 기점으로 조회가 되는 것을 확인할 수 있을 것 이다.
- hdfs에는 옮겨졌지만, metastore은 인식하고 있지 않으니
결론
우연치 않은 기회로 Hive Records 이전 작업을 수행했다.
처음에는 cp 명령어로 간단하게 될까 했는데 진짜 되서 당황스러웠다,
그래도 막히는 부분이 있어서 여러 문제에 봉착할 줄 알았지만, 기존 테이블과 동일한 조건으로 생성한 후 진행해서 그런지 첫 시도에 해결을 했고 시간을 많이 안 잡아먹어서 다행이다.
이제 저것을 기반으로 shell script만 만들고 성공하면 운영 서버 데이터 이전할 때 편안하게 사용해야겠다.
작성 후 작업중 추가로 발생한 에러
'프로그래밍 및 IT > Hive' 카테고리의 다른 글
Hive (0) | 2023.10.24 |
---|