메뉴 건너뛰기

Cloudera, BigData, Semantic IoT, Hadoop, NoSQL

Cloudera CDH/CDP 및 Hadoop EcoSystem, Semantic IoT등의 개발/운영 기술을 정리합니다. gooper@gooper.com로 문의 주세요.


Hadoop Cluster의 인증을 위해서 Windows Server의 Active Directory Kerberos를 사용하는 경우 Active Directory GPO(Goup Policy Object) 설정을 변경해야 하는 경우가 있는데 그 방법과 절차를 기술 한다. (AD Kerberos의 경우 Linux에 설정되어 있는 /etc/krb5.conf의 설정을 적용받지 않음)


1. 상황 : 약 30시간 이상 수행되는 HDFS Replication Job이 "ERROR distcp.DelegationTokenRenewer: Ticket Cache renewal failed", "kinit: Ticket expired while renewing credentials"가 발생하면서 HDFS Replication이 실패함.

2. 원인 파악 : hdfs계정으로 kinit을 하고 klist를 수행해보면 TGT Cache유효기간이 10H, Ticket Renewal lieftime이 10H으로 설정되어 있어 장기간(15H이상) 수행시 Ticket Cache renewal이 실패하면서 전체 Job이 실패하게됨(10H에 바로 fail되지 않은것은 Replication job의 내부 로직상 인증되어 처리가 시작된것은 약 15H까지는 처리를 수행하는것 같음, 15H이 넘어가면 불특정한 시간에 fail됨)

3. 조치 방법 : AD kerberos의 설정값중 다음을 추천값으로 변경해준다. 

 - Maximum lifetime for user ticket : 10H

 - Maximum lifetime for user ticket renewal : 7D

4. 변경방법 : Windows 관리 도구 -> "그룹 정책 관리" 바로가기 아이콘에서 shift+우클릭 후 "다른 사용자로 실행" -> Domain Admins권한이 있는 관리자 계정의 id/pw 를 입력하고 실행한다.

  -> "그룹 정책 개체"에서 Default Domain Policy 우클릭 하여 편집 클릭 

  -> 정책->Windows설정->보안설정->계정정책->Kerberos정책 부분의 값을 적절한 값으로 변경해준다. 

  -> 변경 정책 반영을 위해서 cmd에서 "gpupdate /force"를 반드시 수행해줘야 변경 사항이 반영된다. 

5. hdfs계정으로 kinit을 수행후 klist하여 유효 기간이 원하는 기간으로 설정되어 있는지 확인한다. 


*변경전(cache lifetime 10H, ticket renewal lifetime 10H)

[hadoop@node10:~]$sudo -u hdfs kinit -kt /run/cloudera-scm-agent/process/1546546453-hdfs-DATANODE/hdfs.keytab hdfs/node10.gooper.com@GOOPER.COM

[hadoop@node10:~]$sudo -u hdfs klist

Ticket cache: FILE:/tmp/krb5cc_39998

Default principal: hdfs/node10.gooper.com@GOOPER.COM


Valid starting Expires Service principal

02/27/2024 13:36:16 02/27/2024 23:36:16 krbtgt/GOOPER.COM@GOOPER.COM

renew until 02/27/2024 23:36:16

[hadoop@node10:~]$date

Tue Feb 27 13:36:40 KST 2024


* 변경후(cache lifetime 10H, ticket renewal lifetime 10H)

[hadoop@gooper01:~]$sudo -u hdfs kinit -kt /run/cloudera-scm-agent/process/1546391195-hdfs-DATANODE/hdfs.keytab hdfs/gooper01.gooper.com

[hadoop@gooper01:~]$sudo -u hdfs klist

Ticket cache: FILE:/tmp/krb5cc_39998

Default principal: hdfs/gooper01.gooper.com@GOOPER.COM


Valid starting       Expires              Service principal

03/12/2024 11:23:14  03/12/2024 21:23:14  krbtgt/GOOPER.COM@GOOPER.COM

        renew until 03/19/2024 11:23:14



*참고

 : Maximum lifetime for user ticket renewal이 설정안됨, Maximum lifetime for user ticket이면 kinit수행시 renewal/cache lifetime 10H으로 설정됨.

번호 제목 날짜 조회 수
241 Impala Admission Control 설정시 쿼리가 사용하는 메모리 사용량 판단 방법 2023.05.19 672
240 java.lang.ClassNotFoundException: org.apache.hadoop.util.ShutdownHookManager 오류조치사항 2015.05.20 673
239 root가 localhost에서 mysql로 접근하지 못하는 경우의 해결방법(패스워드) 2014.09.10 675
238 anaconda3 (v5.2) 설치및 머신러닝 관련 라이브러리 설치 절차 2018.07.27 675
237 hadoop의 data디렉토리를 변경하는 방법 2014.08.24 676
236 spark, kafka, mariadb, jena, springframework등을 이용하여 공통모듈을 jar로 만들기 위한 build.gradle파일(참고용) 2016.08.19 681
235 Drools 6.0 - 비즈니스 룰 기반으로 간단한 룰 애플리케이션 만들기 file 2016.07.18 683
234 원격지에서 zio공유기를 통해서 노트북의 mysql접속을 허용하는 방법 2014.09.07 689
233 컬럼및 라인의 구분자를 지정하여 sqoop으로 데이타를 가져오고 hive테이블을 생성하는 명령문 2018.08.03 694
232 not leader of this config: current role FOLLOWER 오류 발생시 확인방법 2022.01.17 695
231 Tracking URL = N/A 가발생하는 경우 - 환경설정값을 잘못설정하는 경우에 발생함 2015.06.17 696
230 hadoop 클러스터 실행 스크립트 정리 2018.03.20 699
229 kafka로 부터 메세지를 stream으로 받아 처리하는 spark샘플소스(spark의 producer와 consumer를 sbt로 컴파일 하고 서버에서 spark-submit하는 방법) 2016.07.13 700
228 kafka-manager 1.3.3.4 설정및 실행하기 2017.03.20 702
227 spark-shell을 실행하면 "Attempted to request executors before the AM has registered!"라는 오류가 발생하면 2018.06.08 704
226 HDFS 파일및 디렉토리 생성시 생성방법에 따라 권한이 다르게 부여된다. 2022.05.30 704
225 uEnv.txt위치및 내용 2014.07.09 711
224 Apache Spark와 Drools를 이용한 CEP구현 테스트 2016.07.15 713
223 conda를 이용한 jupyterhub(v0.9)및 jupyter설치 (v4.4.0) 2018.07.30 714
222 lubuntu 호스트 네임변경 2014.08.03 723
위로