이전 사유

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를 한 기점으로 조회가 되는 것을 확인할 수 있을 것 이다.

결론

우연치 않은 기회로 Hive Records 이전 작업을 수행했다.

처음에는 cp 명령어로 간단하게 될까 했는데 진짜 되서 당황스러웠다,

그래도 막히는 부분이 있어서 여러 문제에 봉착할 줄 알았지만, 기존 테이블과 동일한 조건으로 생성한 후 진행해서 그런지 첫 시도에 해결을 했고 시간을 많이 안 잡아먹어서 다행이다.

이제 저것을 기반으로 shell script만 만들고 성공하면 운영 서버 데이터 이전할 때 편안하게 사용해야겠다.

작성 후 작업중 추가로 발생한 에러

데이터 이전 후 추가로 발생한 에러

'프로그래밍 및 IT > Hive' 카테고리의 다른 글

Hive  (0) 2023.10.24

+ Recent posts