본문 바로가기

HIVE126

[빅데이터] 하이브 메타스토어 통합을 지원하는 waggle-dance waggle-dance는 여러 개의 하이브 메타스토어를 통합하여 하나의 메타스토어처럼 처리할 수 있게 해주는 서비스입니다. 아래의 쿼리에서 x, y테이블은 다른 메타스토어에 존재하는데 waggle-dance가 이 메타스토어를 통합하여 하나의 메타스토어에 요청하는 것처럼 처리할 수 있게 도와줍니다. hive> SELECT * FROM local.x, remote.y WHERE x.id = y.id AND x.foo > 1 AND y.bar = 2; 특징 호텔스 닷컴에서 개발하여 오픈 소스로 변경 여러 곳에 배포된 하이브 메타스토어를 통합하여 조회할 수 있는 기능을 제공 다중 하이브 메타스토어 환경에서 통합된 정보를 제공할 수 있는 장점 테이블의 select, join 처리를 위한 통합 엔드 포인트 제공 아.. 2020. 3. 12.
[hive] 구체화 뷰(Materialized View) 하이브 3.0에서 제공하는 구체화 뷰(Materialized Views)에 대해서 알아보겠습니다. 뷰(View)는 논리적인 테이블입니다. 데이터 검색을 위한 구조는 가지고 있지만 실제 데이터는 가지고 있지 않습니다. 구체화 뷰(M-View)는 물리적인 테이블입니다. 구체화 뷰를 생성할 때 데이터를 별도의 저장공간에 저장하여 뷰를 사용할 때 속도를 높일 수 있습니다. 보통 데이터웨어 하우스에서 쿼리의 속도를 높이는데 많이 사용됩니다. 하이브에서 규체화 뷰는 LLAP, Calcite(CBO) 기능과 협력하여 쿼리의 속도를 높이는 데 사용됩니다. 구체화 뷰 생성 구체화 뷰는 생성되는 시점에 테이블의 데이터를 취합하여 데이터를 저장합니다. 이 과정에서 맵리듀스 작업이 발생합니다. 구체화 뷰를 저장하는 기본 서데.. 2020. 1. 21.
[hive] UDF에서 발생하는 argument type mismatch 오류 수정 hive udf에서 java.lang.illegalargumentexception argument type mismatch 오류가 발생하는 경우는 파라미터로 전달하는 타입이 설정과 달라서 발생합니다. 아래와 같은 경우 evaluate UDF의 입력값으로 String 이 전달되어야 하는데 다른 타입이 전달되면 오류가 발생합니다. 일반적인 경우에는 타입이 다르다는 것을 알 수 있지만 함수의 중첩으로 처리하는 경우에는 이 오류를 정확하게 확인하기가 어렵습니다. public class SampleUDF extends UDF { public Text evaluate(String text) { // 입력받은 문자를 대문자로 반환 return new Text(text.toUpperCase()); } } 함수의 중첩 .. 2020. 1. 14.
[hive] 벡터화(vectorized) 처리 하이브 성능 향상의 한 방법인 벡터화(vectorized) 처리는 한 번에 처리하는 데이터의 양을 늘려서 CPU 사용률을 높이고, 처리속도를 빠르게 하는 기법입니다. 검색, 필터, 집계, 조인 처리에서 사용되고, 한 번에 1024개의 행을 동시에 처리하여 속도를 높입니다. 벡터화 설정을 하면 1024행(row)의 블록으로 한번에 작업을 처리합니다. 하나의 블록에서 열(column)은 배열로 처리됩니다. 아래의 클래스와 같이 칼럼이 ColumnVector클래스 배열로 한 번에 읽어서 처리합니다. 조회, 필터링 등에 벡터화를 이용하면 한번에 처리하는 작업이 증가하여 속도가 빨라지게 됩니다. 16억 건의 데이터를 이용해서 count명령을 처리한 결과 벡터화 처리를 하지 않으면 67.6초, 벡터화 처리를 하면 .. 2020. 1. 7.
[hive] 하이브의 조인방식(hive join) 하이브의 세가지 조인 방식에 대해서 알아보겠습니다. 셔플조인 매퍼에서 각 테이블을 읽고 셔플 단계에서 조인되는 키를 기준으로 파티션닝후 셔플을 진행하여 각 리듀서에서 조인을 수행 어떤형태의 데이터 크기와 구성에도 사용 가능 가장 자원을 많이 사용하고 느린 조인 방식 맵조인 (브로드캐스트 조인, 맵사이드 조인) 작은 사이즈의 테이블이 메모리에 올라가고, 각 매퍼에서 조인을 수행후 결과를 반환하는 방식 가장 큰 테이블에서 가장 빠른 단일 스캔 작은 테이블은 메모리에 들어갈 정도로 작아야 함 -- 맵조인 사용여부 설정, 3개 이상의 테이블을 조인할 때 맵조인 사용여부 설정하는 옵션 hive> set hive.auto.convert.join=true; hive> set hive.auto.convert.join... 2020. 1. 6.
[hive] Blobstore 기능으로 처리 속도 증가 하이브 2.2.0 버전부터 Blobstore기능을 제공합니다. Blobstore Blobstore는 하이브 작업시에 생성되는 임시 파일을 S3에 작성하지 않고, HDFS에 작성하는 기능을 제공합니다. HDFS가 S3보다 IO속도가 빠르기 때문에 작업의 속도가 빨라지게 됩니다. 해당 기능을 이용하였을 때 1.5배 정도의 속도 증가가 이루어졌습니다. 하이브에서 TEZ로 작업하고 파일 머지까지 발생하는 작업으로 테스트 결과 MR속도와 파일 머지 속도가 빨라서 전체 작업시간이 다음과 같이 HDFS를 사용하는 경우가 1.5배 빠르게 나왔습니다. 하지만 HDFS를 사용하는 경우 임시파일의 저장으로 인한 작업 공간의 사용, 네임노드 관리로 인한 과부하 등의 오버헤드가 발생하기 때문에 작업의 형태에 따라 적절한 선택과.. 2019. 12. 19.
[EMR] S3 503 Slow Down 오류 발생시 해결방법 EMR에서 하둡, 하이브 작업시 S3에 동시에 많은 요청이 들어가면 503 Slow Down 오류가 발생합니다. S3의 스펙상으로 동시에 5500개 이상의 요청이 들어가면 오류가 발생합니다. AmazonS3Exception: Internal Error (Service: Amazon S3; Status Code: 500; Error Code: 500 Internal Error; Request ID: A4DBBEXAMPLE2C4D) AmazonS3Exception: Slow Down (Service: Amazon S3; Status Code: 503; Error Code: 503 Slow Down; Request ID: A4DBBEXAMPLE2C4D) https://aws.amazon.com/ko/premi.. 2019. 12. 16.
[hive] MSCK is missing partition columns under location. 오류 해결 방법 EMR에서 하이브의 테이블에 MSCK 명령을 이용해서 테이블을 재구성할 때 다음의 오류가 발생하는 경우가 있습니다. Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: MSCK is missing partition columns under s3://bucket_name/directory_location 원인 이 오류는 지정한 버켓의 폴더가 없어서 발생하는 오류입니다. S3의 특성상 디렉토리만 생성되면 파일시스템에 따라서 $folder$ 가 생성되면서 이 특수 파일이 옮겨지는 과정에서 누락되면 이 오류가 발생합니다. 해결방법 이 오류는 디렉토리를 만들어서 해결할 수도 있고, 아래의 설정을 이용해서 오류가 있는 폴더는 무시하고 처리할 수 있도록 설정할.. 2019. 12. 4.
[hive] Error in getting fields from serde.Invalid Field null 오류 수정 방법 하이브에서 파티션의 정보를 확인할 때 다음의 오류가 발생하는 경우가 있습니다. hive> desc formatted TABLE_NAME partition(partition1='A'); FAILED: Excution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. Error in getting fields from serde.Invalid Field null 원인 이 오류는 확인 하려고 하는 파티션의 정보를 부족하게 제공해서 발생합니다. 위의 예제의 경우 partition1과 partition2 두 개의 파티션을 가진 테이블에서 정보를 하나만 제공하여 오류가 발생하였습니다. 해결방법 아래와 같이 테이블의 파티션에 관련된 모.. 2019. 12. 4.
[spark] Unable to instantiate SparkSession with Hive support because Hive classes are not found. 오류 해결 방법 EMR 5.24에서 우지와 스파크 sql을 이용하여 작업을 하려고 하면 다음과 같은 오류가 발생합니다. 에러로그 Caused by: java.lang.IllegalArgumentException: Unable to instantiate SparkSession with Hive support because Hive classes are not found. at org.apache.spark.sql.SparkSession$Builder.enableHiveSupport(SparkSession.scala:870) at com.sec.bigdata3.analyzer.scala.profile.RunestoneProfile$.main(RunestoneProfile.scala:32) at com.sec.bigdata3.. 2019. 11. 8.
[oozie] 우지 액션의 log4j 설정 추가 우지 5.0에서 log4j 설정을 읽지 못해서 발생하는 오류는 우지의 쉐어라이브러리에 log4j 설정을 복사해서 적용할 수 있습니다. SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/mnt/yarn/filecache/56/log4j-slf4j-impl-2.6.2.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/usr/lib/hadoop/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.sl.. 2019. 11. 4.
[oozie][hive][log4j] ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console. 오류 해결 방법 우지를 이용해서 액션을 실행할 때 다음과 같이 log4j 설정 정보를 찾지 못해서 기본설정으로 작업하여 에러로그만 출력하는 경우가 있습니다. 이때는 로그설정 파일을 우지 액션에서 함께 전달하면 됩니다. SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/mnt/yarn/filecache/56/log4j-slf4j-impl-2.6.2.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/usr/lib/hadoop/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLogger.. 2019. 10. 31.
[hive] 하이브 schemaTool을 이용하여 스키마 생성 원격 하이브 메타스토어를 이용하기 위해서는 RDB에 하이브 메타스토어 스키마를 설정해야 합니다. hive-site.xml에 RDB에 접속을 위한 정보를 입력하고, 커맨드를 입력하여 스키마를 생성할 수 있습니다. hive-site.xml 설정 원격 데이터베이스에 접속하기 위한 접속정보를 설정합니다. javax.jdo.option.ConnectionURL jdbc:mysql://database_ip:database_port/database_name javax.jdo.option.ConnectionDriverName org.mariadb.jdbc.Driver javax.jdo.option.ConnectionUserName user_name javax.jdo.option.ConnectionPassword pas.. 2019. 10. 30.
[AWS-EMR] EMR의 하이브메타스토어 재시작 AWS EMR의 하이브메타스토어를 재시작하는 방법은 다음과 같습니다. * 하이브메타스토어는 hive-hcatalog-server 라는 이름으로 서비스되고 있습니다. # 운영 중지 sudo stop hive-hcatalog-server # 운영 시작 sudo start hive-hcatalog-server 2019. 10. 10.
[hive] 테이블 DROP 시 발생하는 Caused by: MetaException(message:Timeout when executing method: drop_table_with_environment_context; 69853ms exceeds 60000ms) 오류 하이브에서 테이블을 DROP 할 때 다음의 오류가 발생하는 경우가 있습니다. 증상 2019-07-29 06:08:02,737 ERROR [c09ac50a-3167-4c79-8909-a678d59ab9a0 uber-SubtaskRunner] hive.ql.exec.DDLTask: org.apache.hadoop.hive.ql.metadata.HiveException: MetaException(message:Timeout when executing method: drop_table_with_environment_context; 69853ms exceeds 60000ms) at org.apache.hadoop.hive.ql.metadata.Hive.dropTable(Hive.java:1180) at org.a.. 2019. 7. 29.
[hive] TEZ 작업중 GC overhead limit exceeded 오류 처리 하이브 TEZ작업 중 발생하는 다음의 GC오류는 수행시간의 많은 부분(98%)이 GC에 들어가고, GC를 수행하여도 사용할 수 있는 메모리가 부족(2%가 복구)할 때 발생하는 오류입니다. -XX:-UseGCOverheadLimit 옵션을 이용하여 이 오류가 발생하지 않도록 설정 할 수 있습니다. 자바 프로그램에서는 -Xmx 옵션으로 힙의 용량을 늘여서 해결할 수 있습니다. 하이브에서는 컨테이너의 메모리 용량과 힙의 용량을 늘여서 해결할 수 있습니다. Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded at java.util.Arrays.copyOf(Arrays.java:3181) TEZ 컨테이너의 메모리 증설 방법은 다음과 같습니다. 또한.. 2019. 7. 5.
[hive] common.JvmPauseMonitor (JvmPauseMonitor.java:run(194)) - Detected pause in JVM or host machine (eg GC): pause of approximately 1727ms 메시지 최근 hive 작업을 진행하면서 하이브 메타스토어의 연결이 자주 끊어지는 현상이 발생하였습니다. 이 문제를 확인하기 위해서 로그를 확인하였는데 다음과 같은 메시지를 확인할 수 있었습니다. 이 메시지는 어떤 이유(보틍은 GC작업)에 의해서 JVM이 멈췄다는 것을 이야기 하고 있습니다. 2019-05-20T08:20:23,695 INFO [org.apache.hadoop.hive.common.JvmPauseMonitor$Monitor@503a5861([])]: common.JvmPauseMonitor (JvmPauseMonitor.java:run(194)) - Detected pause in JVM or host machine (eg GC): pause of approximately 1727ms 2019-0.. 2019. 7. 1.
[hive] 하이브 테이블 조회시 파티션 개수 제약하기 하이브에서 테이블을 조회할 때 where 조건에 파티션 정보를 이용하면 하이브 메타스토어에서는 테이블의 파티션 정보를 가져와서 데이터를 조회할 로케이션을 설정합니다. 이때 MetaStoreDirectSql.java 에서 다음의쿼리를 이용하여 파티션 정보를 가져옵니다. 그런데 이때 파티션의 구간을 길게 잡아서 조회하는 파티션 개수가 많아지면 버퍼 오류가 발생하게 됩니다. select PARTITIONS.PART_ID from PARTITIONS inner join TBLS on PARTITIONS.TBL_ID = TBLS.TBL_ID and TBLS.TBL_NAME = "테이블명" inner join DBS on TBLS.DB_ID = DBS.DB_ID and DBS.NAME = "데이터베이스명" wher.. 2019. 5. 22.
[hive] explain을 이용하여 CBO 적용 여부 확인 하이브는 쿼리 최적화를 위해서 CBO를 사용할 수 있습니다. CBO사용을 설정하고, explain 명령을 이용하여 실행계획을 확인할 때 CBO 적용 여부를 알 수 있는데 CBO를 적용하기 위해서는 ANALYZE 명령을 이용해서 테이블의 메타 데이터를 수집해야 합니다. 메타데이터 자동 수집 설정으로 통해 데이터를 입력할 때 자동으로 수집하게 할 수도 있습니다. # CBO 동작 설정 set hive.cbo.enable=true; # 메타데이터 자동 수집 설정 set hive.stats.autogather=true; 메타 데이터를 수집하는 명령은 ANALYZE를 이용합니다. ANALYZE TABLE sample_table PARTITION(yymmdd='20180201') COMPUTE STATISTICS f.. 2019. 4. 5.
[hive] TEZ엔진의 리듀서 처리중 셔플 단계의 OutOfMemoryError: Java heap space 오류 처리 TEZ엔진으로 작업을 처리하는 중 다음의 오류가 발생하였습니다. 에러를 보면 셔플 단계에서 메모리 오류가 발생한 것을 확인 할 수 있습니다. 셔플 단계는 맵작업의 결과를 리듀서에 전달하는 작업으로 여러 매퍼에서 전달된 결과를 리듀서에 저장하여 정렬하는 과정에서 OOM 오류가 발생할 수 있습니다. 2019-04-05 00:11:34,008 ERROR [Thread-104] SessionState: Vertex failed, vertexName=Reducer 4, vertexId=vertex__1_05, diagnostics=[Task failed, taskId=task__1_05_000182, diagnostics=[TaskAttempt 0 failed, info=[Error: Error while run.. 2019. 4. 5.
[hive] Vertex's TaskResource is beyond the cluster container capability 오류 처리 TEZ를 이용하여 작업을 처리할 때 발생하는 이 오류는 YARN에 지정한 컨테이너에 할당할 수 있는 최대 메모리보다, TEZ 컨테이너 사이즈 설정이 더 클때 발생합니다. YARN에 설정된 최대 메모리 이하로 컨테이너 사이즈를 설정해야 합니다. MR 엔진을 이용할 때도 최대 메모리 이하로 설정해야 합니다. # YARN에서 관리하는 컨테이너의 최대 메모리 설정 set yarn.scheduler.maximum-allocation-mb=11520; # TEZ의 컨테이너당 메모리 설정 set hive.tez.container.size=1440; # MR의 매퍼 메모리 설정 set mapreduce.map.memory.mb=2048; # MR의 리듀서 메모리 설정 set mapreduce.reduce.memory... 2019. 4. 5.
[hive] 하이브 처리 결과를 gzip으로 압축하는 방법 하이브 처리 결과를 gzip으로 압축하여 출력할 때는 다음과 같이 사용합니다. hive.exec.compress.output: 출력결과의 압축 여부를 설정 mapred.output.compression.codec: 압축 코덱을 설정. core-site.xml의 io.compression.codecs에 설정된 값을 사용 set hive.exec.compress.output=true; set mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec; -- 조회결과를 gzip으로 압축하여 출력 INSERT OVERWRITE DIRECTORY 'hdfs:///user/tables/' SELECT * FROM table WHERE name =.. 2019. 4. 3.
[hive] MSCK REPAIR 처리중 Caused by: MetaException(message:Expected 2 components, got 1) 처리 MSCK REPAIR는 하이브에서 테이블의 파티션을 일괄 생성할 때 사용하는 명령어 입니다. 테이블의 로케이션의 하위 디렉토리를 검색하여 파티션 정보와 일치하는 디렉토리를 자동으로 파티션으로 추가해주는데 파티션 정보와 다른 디렉토리가 존재하면 아래의 오류가 발생합니다. 2개의 파티션 데이터가 있는 구조인데 한개만 있다고 오류가 발생하였습니다. Caused by: MetaException(message:Expected 2 components, got 1) 이 오류를 해결하는 방법은 두가지가 있습니다. 첫번째는 디렉토리를 정리하여 파티션 구조에 맞는 디렉토리와 파일만 놓아두는 것입니다. 두번째는 다음의 옵션값을 이용하는 방법이 있습니다. set hive.msck.path.validation=ignore; 이.. 2019. 4. 1.
[hive] 테이블의 파티션을 범위로 삭제(Drop)하는 방법 하이브 테이블의 파티션을 제거(drop)하는 문법은 다음과 같습니다. ALTER TABLE table_name DROP PARTITION(partition_name='partitions_value'); yyyymmdd 파티션을 가지는 table을 이용해서 삭제 방법을 알아보겠습니다. # table은 yyyymmdd 파티션을 가지고 있음 hive> show partitions table; OK yyyymmdd=20190220 yyyymmdd=20190221 yyyymmdd=20190222 yyyymmdd=20190223 yyyymmdd=20190224 yyyymmdd=20190225 yyyymmdd=20190226 yyyymmdd=20190227 yyyymmdd=20190228 yyyymmdd=201902.. 2019. 4. 1.
[hive] 하이브의 LLAP(Live Long And Process) 구조 LLAP는 하이브 2.0에서 신규로 추가된 기능입니다. LLAP는 MR이나 TEZ 같은 실행엔진이 아닙니다. HDFS같은 저장 장치도 아닙니다. 각 노드에서 실행되는 작업 데몬으로 자주 사용되는 데이터를 캐슁하여 작업 속도를 높이는 기술입니다. LLAP는 작업 노드에서 실행되어 계속 유지되면서 작업 데이터의 캐슁, 미리 가져오기(Pre-fetching) 등을 처리합니다. 사용자가 쿼리를 실행하면 그때 마다 데이터를 읽지 않고, LLAP에 저장된 데이터가 있으면 이를 이용하여 처리 속도를 높이는 기술입니다. 하이브 매뉴얼 LLAP -> 바로가기하이브 설정 매뉴얼 LLAP -> 바로가기 LLAP 구조 -> 바로가기 LLAP: long-lived execution in Hive from DataWorks Su.. 2019. 2. 26.
[hive] 하이브 3의 특징 2018년 5월 발표된 하이브3의 특징에 대해서 알아보겠습니다. 워크로드 관리 추가 하이브 쿼리를 이용해 작업 부하 관리가 가능해 졌습니다. Role, Plan 을 이용하여 쿼리의 수행에 제약을 걸 수 있습니다. 시스템 데이터베이스, 테이블 추가 테이블의 칼럼, 데이터베이스 정보를 확인할 수 있는 테이블이 추가 되었습니다. 오라클의 시스템 DB와 같습니다. 또한, 커넥터를 제공하여 사용자가 JDBC등을 이용하여 직접 조회할 수도 있습니다. 구체화 뷰 추가 Materialized View 가 추가 되었습니다. 집계 데이터 조회시 구체화 뷰를 이용해 좀더 빠른 처리가 가능합니다. 일반적인 뷰는 실제 데이터를 가지지 않고, 논리적 구조만을 가지고 있습니다. 구체화뷰는 실제 데이터를 가지고 있으며, 테이블에 데.. 2019. 2. 25.
[hive] CLI 동작중 에러 발생시 무시하기 하이브 CLI 를 이용해서 쿼리 처리중 하나의 쿼리가 실패해도 다음 쿼리를 실행해야 하는 경우가 있습니다. 즉, 에러가 발생해도 무시하게 하는 설정이 필요할 때가 있는데 다음의 설정을 쿼리 시작전에 set 하면 됩니다. set hive.cli.errors.ignore=true; 2019. 2. 22.
[hive] 작은 사이즈의 파일 머지 설정과 그로 인한 오버헤드 하이브에서 FROM INSERT 문을 이용하여 한번에 여러곳에 데이터를 입력할때 다음과 같이 사용합니다. [FROM INSERT 문을 이용한 입력 예시] FROM ( SELECT * FROM tbl ) INSERT tableA INSERT tableB [TEZ 엔진 실행 결과] ---------------------------------------------------------------------------------------------- VERTICES MODE STATUS TOTAL COMPLETED RUNNING PENDING FAILED KILLED --------------------------------------------------------------------------------.. 2019. 2. 20.
[빅데이터] ORC와 Parquet 파일 저장 형식 빅데이터는 효율적인 데이터 저장을 위해 여러가지 저장 형식이 있습니다. 처음에는 TXT 형식으로 데이터를 저장하였지만, 데이터 저장공간과 처리 속도면에서 문제가 발생하면서 효율적인 처리 방식을 고민하게 되었습니다. 이때 클라우데라의 더그 커팅이 trevini, 호튼웍스의 오웬 오말리가 ORC 파일 포맷을 만들었습니다. ORC는 압축률이 높고, 스키마를 가지고 있으며, 처리속도가 빠르지만 하이브에서만 사용할 수 있었습니다(현재는 아님). 회사가 다르다 보니 통합된 형태로 발전하지 못하고 각각 발전하다 트위터에서 Parquet을 발표 했습니다. Parquet도 ORC와 유사하게 칼럼기반의 구조를 가지고 있습니다. 이제 ORC와 Parquet에 대해서 알아보겠습니다. ORC칼럼 기반 저장 포맷 하이브의 RC .. 2019. 2. 19.
[hive] 테이블 파티션의 로케이션 정보 확인, 생성, 수정 방법 하이브 테이블의 로케이션과 파티션의 로케이션은 desc 명령으로 확인할 수 있고,파티션의 정보 수정 방법은 다음과 같습니다. # 테이블 정보 및 로케이션 확인 desc formatted [테이블명]; # 테이블의 파티션 목록 확인show partitions [테이블명]; # 신규 파티션 추가 ALTER TABLE [테이블명] ADD PARTITION (yymmdd='20180510'); # 파티션의 LOCATION 수정 ALTER TABLE [테이블명] PARTITION (yymmdd='20180510') SET LOCATION 'hdfs://127.0.0.1/user/'; # 파티션 삭제 ALTER TABLE [테이블명] DROP PARTITION (yymmdd='20180510'); 2019. 1. 17.