WebHCat 설정
WebHCat 설정 (Configure)
WebHCat(구 Templeton)의 설정은 일반 Hadoop 설정과 WebHCat 고유 변수를 합쳐 사용해요. WebHCat은 평소에는 연결되지 않는 서비스들을 연결하도록 설계되어서, 설정이 다소 복잡할 수 있습니다.
출처: 문서
본문
설정 파일 (Configuration Files)
WebHCat 고유 설정은 두 계층으로 나뉩니다.
- webhcat-default.xml – WebHCat이 필요한 모든 설정 변수를 담은 파일. WebHCat과 함께 배포되는 기본값을 정의하며, WebHCat 개발자만 수정해야 해요. 이 파일을 복사하거나 로컬 설치 설정을 유지하려고 변경하면 안 됩니다.
webhcat-default.xml은 WebHCat war 파일 안에 포함되어 있기 때문에 로컬 복사본을 수정해도 설정이 바뀌지 않아요. - webhcat-site.xml – (비어 있을 수 있는) 설정 파일로, 시스템 관리자가 자기 Hadoop 클러스터의 변수를 여기에 설정합니다. 로컬 설치에 맞춰 기본값을 오버라이드해야 하는 변수에 대해 이 파일을 만들고 항목을 유지하세요.
참고: 설정을 변경한 뒤에는 WebHCat 서버를 재시작해야 해요.
설정 파일은 나중의 파일이 앞선 파일을 덮어쓰는 순서로 로드됩니다. WebHCat은 먼저 CLASSPATH에서 파일을 로드하려 하고, 그다음 TEMPLETON_HOME 환경 변수가 가리키는 디렉토리를 확인합니다.
설정 파일은 모든 환경 변수에 대해 특별한 환경 변수 env를 사용할 수 있어요. 예를 들어 Pig 실행 파일은 다음과 같이 지정할 수 있습니다.
${env.PIG_HOME}/bin/pig
파일시스템 경로를 사용하는 설정 변수는 합리적인 기본값을 가지려 합니다. 하지만 확실하지 않다면 언제나 전체 경로를 지정하는 것이 안전해요.
로그 파일 위치 (Log File Location)
webhcat-log4j.properties 파일은 WebHCat이 만드는 로그 파일의 위치와 로깅 시스템의 다른 속성들을 설정합니다.
설정 변수 (Configuration Variables)
| Name | Description |
|---|---|
| templeton.port | 메인 서버의 HTTP 포트 |
| templeton.hadoop.config.dir | Hadoop 설정 경로 |
| templeton.jar (Obsolete) | WebHCat jar 파일 경로. 최근 릴리스에서 사용되지 않으므로 Hive 0.14.0에서 제거됨 |
| templeton.libjars | 클래스패스에 추가할 jar |
| templeton.override.jars | 모든 MapReduce 작업의 HADOOP_CLASSPATH에 추가할 jar. 이 jar들은 HDFS에 존재해야 해요 |
| templeton.override.enabled | templeton.override.jars의 오버라이드 경로 활성화 |
| templeton.streaming.jar | Hadoop streaming jar 파일의 HDFS 경로 |
| templeton.hadoop | Hadoop 실행 파일 경로 |
| templeton.pig.archive | Pig 아카이브 경로 |
| templeton.pig.path | Pig 실행 파일 경로 |
| templeton.hcat | HCatalog 실행 파일 경로 |
| templeton.hive.archive | Hive 아카이브 경로 |
| templeton.hive.path | Hive 실행 파일 경로 |
| templeton.hive.properties | Hive 실행 시(작업 제출 중) 설정할 속성. 쉼표로 구분된 prop=value 목록이어야 해요. 어떤 값이 그 자체로 쉼표 구분 목록이면 이스케이프 문자는 '\' (Hive 0.13.1부터). Kerberos 보안 클러스터에서 사용하려면 hive.metastore.sasl.enabled=false로 설정하고 hive.metastore.execute.setugi=true를 추가하세요. metastore URI에서 localhost를 사용하는 것은 Kerberos 보안과 동작하지 않아요 |
| templeton.exec.encoding | stdout과 stderr 데이터의 인코딩 |
| templeton.exec.timeout | 프로그램이 WebHCat 박스에서 실행될 수 있는 시간(밀리초) |
| templeton.exec.max-procs | 한 번에 실행할 수 있는 최대 프로세스 수 |
| templeton.exec.max-output-bytes | stdout 또는 stderr에서 RAM에 저장되는 최대 바이트 수 |
| templeton.controller.mr.child.opts | WebHCat 컨트롤러 map 태스크로 전달할 Java 옵션 |
| templeton.exec.envs | exec로 전달되는 환경 변수 |
| templeton.zookeeper.hosts | ZooKeeper 서버 (쉼표 구분 host:port 쌍) |
| templeton.zookeeper.session-timeout | ZooKeeper 세션 타임아웃(밀리초) |
| templeton.callback.retry.interval | 콜백 재시도 시도 사이 대기 시간(밀리초) |
| templeton.callback.retry.attempts | 콜백 재시도 횟수 |
| templeton.storage.class | 스토리지로 사용할 클래스 |
| templeton.storage.root | 스토리지에 사용할 디렉토리 경로 |
| templeton.hdfs.cleanup.interval | 스레드 정리 검사 사이의 최대 지연 |
| templeton.hdfs.cleanup.maxage | WebHCat 작업의 최대 수명 |
| templeton.zookeeper.cleanup.interval | 스레드 정리 검사 사이의 최대 지연 |
| templeton.zookeeper.cleanup.maxage | WebHCat 작업의 최대 수명 |
| templeton.kerberos.secret | HTTP 쿠키 값을 서명하는 데 쓰는 시크릿. 기본값은 랜덤 값이며, 여러 WebHCat 인스턴스가 시크릿을 공유해야 할 때가 아니라면 랜덤 값으로 충분해요 |
| templeton.kerberos.principal | 서버가 사용할 Kerberos principal. Kerberos SPNEGO 명세에 따라 USER/${HOSTNAME}@{REALM} 형태여야 해요. 기본값이 없습니다 |
| templeton.kerberos.keytab | Kerberos principal의 자격 증명을 담은 keytab 파일 |
| templeton.hadoop.queue.name | WebHCat map-only 작업이 제출될 MapReduce 큐 이름. 클러스터의 모든 map 슬롯이 Templeton launcher 태스크에 점유되는 교착 상태를 피하는 데 사용할 수 있어요. 버전: Hive 0.12.0 이상 |
| templeton.mapper.memory.mb | WebHCat 컨트롤러 작업의 Launch mapper 메모리 제한(MB). 컨트롤러 작업을 제출할 때 WebHCat은 mapreduce.map.memory.mb를 이 값으로 덮어써요. 비어 있으면 컨트롤러 작업 제출 시 WebHCat이 mapreduce.map.memory.mb를 설정하지 않으므로 mapred-site.xml의 설정이 사용됩니다. 버전: Hive 0.14.0 이상 |
| templeton.frame.options.filter | X-Frame-Options 헤더로 클릭재킹(clickjacking)으로부터 웹 서버를 보호. 가능한 값: DENY, SAMEORIGIN, ALLOW-FROM <uri>. 버전: Hive 3.0.0 이상 |
기본값 (Default Values)
WebHCat 설정 변수의 기본값 중 일부는 릴리스 번호에 따라 달라져요. 사용 중인 Hive 릴리스의 기본값은 webhcat-default.xml 파일을 참고하세요. SVN 저장소에서 찾을 수 있습니다.
http://svn.apache.org/repos/asf/hive/branches/branch-<release_number>/hcatalog/webhcat/svr/src/main/config/webhcat-default.xml
여기서 <release_number>는 0.11, 0.12 등입니다. Hive 0.11 이전에는 WebHCat이 Apache incubator에 있었어요.
- Hive 0.12.0:
http://svn.apache.org/repos/asf/hive/branches/branch-0.12/hcatalog/webhcat/svr/src/main/config/webhcat-default.xml - Hive 0.13.0:
http://svn.apache.org/repos/asf/hive/branches/branch-0.13/hcatalog/webhcat/svr/src/main/config/webhcat-default.xml
Hive 0.11 이전의 기본값은 HCatalog 0.5.0 문서(WebHCat Configuration Variables)에 정리되어 있어요.
Navigation Links: Previous: Installation / Next: Reference. Hive 설정: Configuring Hive, Hive Configuration Properties, Thrift Server Setup
더 알아보기 (Learn more)
WebHCat 설정은 webhcat-site.xml에 로컬 오버라이드를 추가하는 방식이 기본이에요. 후속 문서(WebHCat Reference, WebHCat 사용법)와 함께 보시면 REST API 서버를 직접 운영할 수 있는 지식이 갖춰집니다.