Kerberos가 적용된 Apache Hadoop을 딥 스토리지로 사용하도록 Apache Druid 구성하기

Kerberos가 적용된 Apache Hadoop을 딥 스토리지로 사용하도록 Apache Druid 구성하기 (Configure Apache Druid to use Kerberized Apache Hadoop as deep storage)

Kerberos 인증이 적용된(Kerberized) Apache Hadoop(HDFS)을 Druid의 딥 스토리지(deep storage)로 사용하도록 구성하는 방법을 안내해 드릴게요. 복사해야 할 설정 파일들과 HDFS 폴더·권한 준비, 그리고 Druid 설정 변경을 순서대로 다뤄요.

출처: 문서

본문

설정 (Setup)

Druid conf 폴더에 복사해야 하는 설정 파일들은 다음과 같아요:

  • hdfs-site.xml
  • core-site.xml

HDFS 폴더와 권한 (HDFS Folders and permissions)

  • druid 딥 스토리지용 폴더 이름을 정해 주세요. 예를 들어 'druid'.
  • 필요한 상위 폴더 아래에 hdfs에서 폴더를 만들어 주세요. 예: hdfs dfs -mkdir /druid 또는 hdfs dfs -mkdir /apps/druid
  • druid 프로세스가 이 폴더에 접근할 수 있도록 적절한 권한을 druid 프로세스에 부여해 주세요. 그래야 druid가 HDFS에서 data 나 indexing_log 같은 필요한 폴더를 만들 수 있어요. 예를 들어 druid 프로세스가 root 사용자로 실행된다면, hdfs dfs -chown root:root /apps/druid 또는 hdfs dfs -chmod 777 /apps/druid 를 실행해 주세요.

Druid는 이 새로 만든 폴더 아래에 데이터와 인덱스를 저장하는 데 필요한 하위 폴더를 만들어요.

Druid 설정 (Druid Setup)

HDFS 속성을 포함하도록 conf/druid/_common/common.runtime.properties 를 편집해 주세요. 위치에 사용되는 폴더는 위 예시에서 사용한 것과 동일해요.

common.runtime.properties

# Deep storage
## For HDFS:
druid.storage.type=hdfs
druid.storage.storageDirectory=/druid/segments
# OR
# druid.storage.storageDirectory=/apps/druid/segments

참고: 파일에서 Local storage와 S3 Storage 파라미터는 주석 처리해 주세요.

또한 conf/druid/_common/common.runtime.properties 에 hdfs-storage 핵심 확장 프로그램(core extension)을 포함해 주세요:

## Extensions
#druid.extensions.directory=dist/druid/extensions
druid.extensions.loadList=["mysql-metadata-storage", "druid-hdfs-storage", "druid-kerberos"]

Kerberos 설정 (Kerberos setup)

druid 데이터에 접근할 수 있는 헤드리스 키탭(headless keytab)을 만들어 주세요.

conf/druid/_common/common.runtime.properties 를 편집하고 다음 속성을 추가해 주세요:

druid.hadoop.security.kerberos.principal
druid.hadoop.security.kerberos.keytab

예를 들면:

[email protected]
druid.hadoop.security.kerberos.keytab=/etc/security/keytabs/hdfs.headless.keytab

Druid 서비스 재시작 (Restart Druid Services)

위 변경 사항을 적용한 뒤 Druid를 재시작해 주세요. 이렇게 하면 Druid가 Kerberos가 적용된 Hadoop과 함께 동작하게 돼요.

더 알아보기 (Learn more)