Hive는 메타스토어상 테이블의 location을 바꾼다고 해서 테이블에 속한 partition의 location까지 바뀌진 않는다. 그래서 location을 수동으로 바꿔주거나 cascade 옵션을 줘서 변경해야한다.
partition의 location을 바꾸려면 아래와 같은 명령어를 사용해야한다.
ALTER TABLE [db_name].[table_name] PARTITION ([partition]=[value]) SET LOCATION [new_location]
그런데 이런 에러가 뜨면서 실패했다.
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. Unable to alter partition. alter is not possible
찾아보니 Cloudera 커뮤니티에 같은 증상에 대한 간단한 솔루션이 있어서 따라했더니 된다.
db_name을 USE db_name; 으로 먼저 선언한 후에 ALTER TABLE [table_name] 을 하면 된다.
'Data Engineering > Hadoop' 카테고리의 다른 글
hadoop distcp에서 queue 지정하기 (0) | 2020.02.12 |
---|---|
HDFS Architecture Guide (0) | 2020.01.10 |