Cloudera Manager가 관리하는 구성 파일의 차이점

Cloudera Manager Advent Calendar 2015의 하루입니다.

Cloudera Manager(이하 CM)는 Hadoop 클러스터의 설치, 관리를 용이하게 해주는 애플리케이션입니다. 아키텍처는 다음과 같이 CM Server와 Agent가 서로 통신하는 구성입니다.

alt

CM을 사용하면 10 노드이지만 1000 노드이지만 Apache Kafka이지만 Apache Spark를 설치하려고하지만 모든 마법사를 통해 클러스터를 구축 할 수 있습니다. 클러스터를 구축한 후에는 core-site.xml이나 hdfs-site.xml 등 필요한 설정의 배포, JAVA_HOME 등의 환경 변수의 설정을 모두 CM이 해 줍니다. 또, 수집한 메트릭스를 베이스로 차트를 표시하는 기능도 있어, 운용 효율이 현격히 오르는 것이 특징입니다. UI가 거의 모두 일본어화되어 있는 것도 기쁜 포인트일 것입니다.

자, CM에서는 크게, 서버 설정과 클라이언트 설정이라는 생각으로 설정 파일을 관리합니다. 이 게시물에서는 최신 CM 5.5를 기반으로 두 가지 차이점을 설명합니다. 덧붙여 아래 공식 문서를 참고로 하고 있습니다.

Cloudera Manager 5 Overview
h tp // w w. c우우라. 코 m/콘텐 t/w w/엔-우 s/도쿠멘 타치 온/엔테 rp 리세/아 st/와 피 cs/cm_인 t로_p 리메 r. HTML

원래 설정은 어디에 저장되어 있습니까?



CM에서는 모든 설정 변경이 UI에서 이루어집니다.

그리고 모든 설정 내용은 백엔드 데이터베이스에 저장됩니다. 프로덕션 환경이라면 MySQL, PostgreSQL 또는 Oracle을 사용하는 것이 일반적입니다. 참고: Cloudera Manager and Managed Service Data Stores h tp // w w. c우우라. 코 m / 콘텐 t / w w / 엔 - u s / 도쿠 멘 타치 온 / 엔 rp 리세 / ㅁ st /와 핏 cs / cm_이 g_ 인 s 흠 g_ 곤후 ぃ 구린 g_dbs. HTML

서버 설정



주제입니다. 서버 설정은 클러스터에서 실행되는 실제 프로세스가 사용하는 설정입니다. 예를 들어, HDFS의 네임 노드나 데이터 노드, YARN이면 ResourceManager나 NodeManager가 됩니다. CM이 관리하는 클러스터는 프로세스 시작을 중지하는 데 init 스크립트를 사용하지 않습니다. 대신 supervisord가 프로세스 시작 중지를 관리합니다. 여기에서는 프로세스 기동시의 스텝을 소개하면서 서버 설정이 어떠한 것인지 살펴 보겠습니다.
  • CM이 관리하는 클러스터에서 사용자는 CM에서 항상 프로세스 시작을 중지합니다.
  • 시작을 선택하면 CM Server는 데이터베이스에 저장된 최신 설정을 읽고 적절한 xml 및 conf 파일을 생성합니다. CM Server는 생성된 설정을 프로세스가 시작하는 호스트의 CM Agent에 배포합니다. 구성 파일을 받은 Agent는 /var/run/cloudera-scm-agent/process 아래에 새 디렉토리를 생성하고 모든 설정을 저장합니다. 이 디렉토리는 네임 노드이면 [숫자]-hdfs-NAMENODE, HiveServer2이면 [숫자]-hive-HIVESERVER2라고 하는 디렉토리명이 됩니다. 숫자는 시작할 때마다 증가하며, 특정 시점에서 가장 큰 숫자를 가진 디렉토리는 시작중인 프로세스가 사용하는 구성 파일을 저장하는 디렉토리입니다. 구성 파일을 저장하면 Agent가 supervisord에 프로세스 시작을 명령합니다. supervisord는 최신 디렉토리에서 설정을 읽고 프로세스를 시작합니다. 프로세스가 한 번 시작되면 /var/run 이하의 설정 파일을 아무리 변경해도 설정은 반영되지 않습니다. 반영하려면 CM에서 다시 시작해야 합니다. 설정이 변경되고 재부팅이 필요한 경우 다음 아이콘으로 알림을 받습니다. 클라이언트 설정 이제 서버 설정이 /var/run 이하로 유지되는 반면, CM에서는 /etc/hadoop 및 /etc/hive 등의 디렉토리에도 설정을 배포합니다. CM을 사용하지 않고 구축한 환경에서는, 모든 설정 파일을 /etc하에서 관리하고 있는 케이스가 많은 것은 아닐까요. CM 환경에서 /etc 아래의 파일은 클라이언트에서만 사용됩니다. 여기서의 클라이언트란, hdfs dfs나 hdfs dfsadmin등을 실행하는 HDFS 클라이언트, 혹은 beeline를 실행하는 Hive 클라이언트등을 의미합니다. 이 설정은 클라이언트 설정 배포를 실행하여 클러스터 호스트에 배포됩니다. 클라이언트 설정이 업데이트되고 배포가 필요한 경우 다음 아이콘으로 알림을 받습니다. 본 포스트에서는, CM을 사용하기 시작한 것이 의문에 안기 쉬운 서버, 클라이언트 설정의 차이에 대해서 간단하게 소개했습니다. Hadoop과 같이 복수의 호스트가 협조해 동작하는 시스템에서는, 모든 서버 프로세스가 반드시 같은 설정을 사용하도록(듯이) 관리하는 것은 매우 중요합니다. 서버측과 클라이언트측에서 설정 파일을 구별하는 것으로, 클라이언트가 어떠한 이유로 변경한 설정을 서버 데몬이 다음에 기동시에 읽어 버리지 않도록, CM에서는 보증하고 있습니다.

    좋은 웹페이지 즐겨찾기