Configuration Properties
Configuration Properties
이 문서는 Hive 사용자 구성 속성(때로 파라미터, 변수, 옵션이라 부름)을 설명하고, 어떤 릴리스에서 새 속성이 도입됐는지 기록해요. 구성 속성의 정식 목록은 HiveConf Java 클래스에서 관리되므로, 여러분의 Hive 릴리스에서 사용 가능한 구성 속성의 전체 목록은 HiveConf.java 파일을 참고하세요.
출처: 문서
본문
이 구성 속성들을 사용하는 방법은 Configuring Hive를 참고하세요. 그 문서의 Configuration Variables 섹션은 Hive를 설정하기 위한 관리 구성 속성도 설명합니다. Hive Metastore Administration은 metastore를 위한 추가 구성 속성을 설명해요.
버전 정보: Hive 0.14.0(HIVE-7211)부터 "hive."로 시작하는 구성 이름은 Hive 시스템 속성으로 간주됩니다. hive.conf.validation 옵션(기본 true)이 켜져 있으면, Hive 시스템에 등록되지 않은 "hive."로 시작하는 구성 속성을 설정하려는 모든 시도는 예외를 던집니다.
아래는 카테고리별로 중요한 구성 속성들을 정리한 한국어 참조예요. (속성 이름과 값은 원문 그대로 유지합니다.)
Query and DDL Execution
쿼리/DDL 실행과 관련된 핵심 속성:
- hive.execution.engine — 실행 엔진 선택.
mr(Map Reduce, 기본),tez(Tez, Hadoop 2 전용),spark(Spark, Hive 1.1.0 이상). 기본mr, Hive 0.13.0 추가.mr은 여전히 기본이지만 Hive 2 라인에서 deprecated (HIVE-12300). - hive.execution.mode — 쿼리 조각을 container 또는 llap에서 실행할지 선택. 기본
container, Hive 2.0 (HIVE-9460). - mapred.reduce.tasks — 잡당 기본 reduce 태스크 수. 기본
-1(Hive가 리듀서 수를 자동 결정), Hive 0.1.0. - hive.exec.reducers.bytes.per.reducer — 리듀서당 데이터 크기. 기본 Hive 0.14.0 이전 1 GB, 이후 256 MB (HIVE-7158).
- hive.exec.reducers.max — 사용될 최대 리듀서 수. 기본 999(0.14.0 이전)/1009(이후), HIVE-7158.
- hive.exec.scratchdir — Hive 잡의 스크래치 공간. Hive 0.14.0 이후 기본
/tmp/hive. HDFS 루트 스크래치 디렉터리로 733 권한으로 생성되며, 사용자별/tmp/hive/<username>디렉터리가 생성됩니다 (HIVE-6847, HIVE-8143). - hive.scratch.dir.permission — 사용자별 스크래치 디렉터리 권한. 기본
700, Hive 0.12.0 (HIVE-4487). - hive.exec.local.scratchdir — 로컬 모드일 때의 스크래치 공간. 기본
/tmp/${user.name}, Hive 0.10.0 (HIVE-1577). - hive.map.aggr — Group By 쿼리에서 map-side 집계 사용 여부. 기본
true, Hive 0.2.0. - hive.groupby.skewindata — group by 쿼리 최적화를 위한 데이터 왜곡 여부. 기본
false, Hive 0.3.0. - hive.groupby.mapaggr.checkinterval — 그룹 키/집계 클래스 크기를 검사하는 행 수. 기본
100000, Hive 0.3.0. - hive.new.job.grouping.set.cardinality — grouping sets/rollups/cubes용 새 MR 잡 실행 여부 기준. 기본
30, Hive 0.11.0 (HIVE-3552). - hive.map.aggr.hash.force.flush.memory.threshold — map-side 그룹 집계 해시 테이블의 최대 메모리. 기본
0.9, Hive 0.7.0 (HIVE-1830). - hive.map.aggr.hash.percentmemory — map-side 그룹 집계 해시 테이블이 쓰는 총 메모리 비율. 기본
0.5, Hive 0.2.0. - hive.optimize.groupby — 버킷화된 파티션/테이블의 버킷 group by 활성화 여부. 기본
true, Hive 0.5.0. - hive.optimize.countdistinct — count distinct를 2단계로 재작성할지. 기본
true, Hive 3.0.0 (HIVE-16654). - hive.multigroupby.singlemr — 다중 group by 실행 최적화.
이 밖에 쿼리 실행·DDL에 관한 수많은 속성(조인 최적화, CBO, LIMIT 최적화, 동적 파티션, 병렬 실행 등)이 있습니다.
Datetime
날짜·시간 관련 속성 (기본적으로 hive.explain.user, 동안 생략)
SerDes and I/O, File Formats, Vectorization
- SerDe와 입출력, 파일 형식(SequenceFile/RCFile/ORC/Avro/Parquet 등), 벡터화(vectorization) 실행 관련 속성들이 이 섹션에 있습니다. 예를 들어 hive.default.fileformat(기본 테이블 파일 형식), hive.vectorized.execution.enabled(벡터화 활성화) 등이 대표적입니다.
MetaStore
- metastore 관련 속성: hive.metastore.uris (metastore 서버 URI), hive.metastore.warehouse.dir (웨어하우스 디렉터리), embedded vs remote metastore 설정, hive.metastore.client.* 속성군 등이 있습니다.
- Hive Metastore Connection Pooling Configuration — metastore 연결 풀링 관련 속성.
- Hive Metastore HBase — metastore를 HBase에 저장하는 설정.
HiveServer2
- hive.server2.thrift.port — HiveServer2 Thrift 포트 (기본
10000). - hive.server2.transport.mode — TCP(binary) 또는 HTTP 전송 모드.
- hive.server2.authentication — 인증 모드(NONE, LDAP, KERBEROS, CUSTOM 등).
- hive.server2.thrift.http.port, hive.server2.thrift.http.path — HTTP 모드 설정.
- hive.server2.max.start.concurrency, hive.server2.tez.sessions.per.default.queue 등 세션/동시성 관련 속성.
- HiveServer2 Web UI — 웹 UI 관련 속성.
Spark / Tez / LLAP
- Spark 실행: spark.executor.memory, spark.executor.cores, hive.spark.* 속성군. Remote Spark Driver 섹션 포함.
- Tez 실행: hive.tez.container.size, tez.* 속성군, 동적 리파티셔닝 등.
- LLAP: hive.llap.* 속성군 (daemon 수, 메모리, 캐시 크기 등), LLAP에 관한 가이드 참고.
Transactions and Compactor
- hive.support.concurrency — 동시성 지원 여부(락 관리).
- hive.txn.manager — 트랜잭션 매니저 클래스 (
org.apache.hadoop.hive.ql.lockmgr.DbTxnManager등). - hive.compactor.* — 컴팩터 관련 (worker 수, 스레드, 임계값).
- Compaction History, Transactions 하위 섹션 포함.
Statistics
- hive.stats.autogather — insert 시 자동 통계 수집 여부.
- hive.stats.fetch.column.stats — 컬럼 통계 가져오기.
- hive.compute.query.using.stats — 통계 기반 쿼리 최적화.
Authentication and Authorization
- 인증/인가 관련 속성: hive.server2.authentication (HiveServer2 섹션과 연결), hive.security.authorization.manager, hive.security.metastore.authorization.manager, hive.security.authorization.enabled 등.
- Restricted/Hidden/Internal List and Whitelist, Hive Client Security, Hive Metastore Security, SQL Standard Based Authorization 하위 섹션 포함.
Archiving / Locking / Metrics / Clustering / Regions / CLI / HBase StorageHandler / Hive Web Interface(HWI) / Replication / Blobstore(S3) / Test Properties
- Archiving: HAR 아카이빙 관련 (*.archived 속성 등).
- Locking: hive.support.concurrency, hive.lock.*, hive.zookeeper.quorum 등.
- Metrics: hive.service.metrics.reporter, hive.service.metrics.file.location 등 (MetricsServlet).
- Clustering / Regions: 쿼리 라우팅·리전 관련.
- Command Line Interface: CLI 관련 속성 (hive.cli.print.header 등).
- HBase StorageHandler: hive.hbase.* 속성군.
- Hive Web Interface (HWI): Hive 2.2.0에서 컴포넌트 제거.
- Replication: 복제 관련 속성 (HiveReplication 문서 참고).
- Blobstore (Amazon S3): fs.s3.** , hive.blobstore.. 속성군.
- Test Properties: 테스트용 속성.
더 알아보기 (Learn more)
실제 사용 가능한 모든 구성 속성의 정식 목록은 Hive 배포본의 HiveConf.java에 있어요. 속성 사용법은 Configuring Hive 문서를, metastore 관련 추가 속성은 Hive Metastore Administration을 참고하세요. 가장 자주 만지는 속성은 hive.execution.engine, hive.metastore.uris, hive.server2.thrift.port 정도입니다.