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 서버를 직접 운영할 수 있는 지식이 갖춰집니다.