Data Engineering/Hadoop
[Hive] ALTER TABLE PARTITION SET LOCATION 이 안되는 현상
__spunky__
2020. 3. 2. 17:19
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] 을 하면 된다.
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