Hive external table을 생성하게 되면 테이블을 drop시키더라도 하둡에는 데이터가 남게 되는데요.
이런 이유로 같은 이름으로 테이블을 재생성했을 경우 기존의 데이터가 그대로 들어있는 것을 보실 수 있습니다.
그래서 hdfs명령으로 하둡데이터를 삭제하고 싶은데 권한 문제로 삭제되지 않습니다...
rmr: DEPRECATED: Please use 'rm -r' instead.
rmr: Failed to move to trash: hdfs://server-txa001.svr.maker.net:8020/user/hive/warehouse/oasis.db/specific_pub_and_area: Permission denied by sticky bit setting: user=irteam, inode=specific_pub_and_area
Command failed with exit code = 1
따라서 external 테이블은 drop시키기 전에 alter명령어로 테이블의 external속성을 변경해주고 drop시켜주어야 합니다.
먼저 desc formatted 테이블명 으로 데이터가 하둡어디에 저장되어있는지 확인합니다.
[server-txa001.svr.maker.net: 8020] > desc formatted specific_pub_and_area;
Query: describe formatted specific_pub_and_area
보시면 Location이 하둡에 저장된 데이터 경로입니다.
해당 Table Parameters를 보시면 EXTERNAL옵션이 TRUE로 되어 있는 것을 보실 수 있습니다.
이 상태에서는 아무리 테이블을 drop시켜도 데이터가 남아있게 됩니다.
따라서 alter table specific_pub_and_area set tblproperties('EXTERNAL'='FALSE'); 명령어로 옵션을 변경해주셔야 합니다.
이렇게 변경하고 desc formatted 테이블명 명령어로 보시면 EXTERNAL옵션이 FALSE로 변경된 걸 확인하실 수 있습니다.
이 상태에서 drop table {테이블명} 을 해주시게 되면 하둡에 있는 데이터들도 삭제되는 것을 확인 하실 수 있습니다.
'Bigdata > QueryEngine' 카테고리의 다른 글
[ Hive ] hive query lateral view explode udf로 string 처리하기 (0) | 2020.07.07 |
---|---|
[ Impala ] Impala에서 drop table시 location지정된 hdfs파일 함께 지우기 (0) | 2020.04.20 |
hive, impala에서 특정 데이터포맷으로 날짜 가져오기 (0) | 2019.04.12 |
hive, impala hive metastore 동기화 작업 (하이브, 임팔라) (0) | 2019.03.25 |
hive와 impala udf create 쿼리 차이 (0) | 2019.03.04 |