본문 바로가기

Data Engineering/Hadoop

[Hive] ALTER TABLE PARTITION SET LOCATION 이 안되는 현상

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] 을 하면 된다.

 

https://community.cloudera.com/t5/Community-Articles/Solution-ALTER-TABLE-PARTITION-SET-LOCATION-does-not-work/ta-p/246537

 

Solution: ALTER TABLE PARTITION SET LOCATION does not work from script execution using hive –f or from beeline.

Steps to replicate: hdfs dfs -ls /apps/hive/warehouse/testraj.db/testtable/filename=test.csv.gz Found 1 items -rw-rw-rw- 1 hive hive 38258 2017-06-27 21:04 /apps/hive/warehouse/testraj.db/testtable/filename=test.csv.gz/000000_0 USING hive -f script cat /tm

community.cloudera.com

 

'Data Engineering > Hadoop' 카테고리의 다른 글

hadoop distcp에서 queue 지정하기  (0) 2020.02.12
HDFS Architecture Guide  (0) 2020.01.10