CDH 5.14.0 환경에서 Spark 및 Kafka 통합 설치 가이드

환경 준비

운영체제: CentOS 7
CDH 버전: 5.14.0

사전 설치 필요 항목:

  • MySQL 서버
  • OpenJDK 또는 Oracle JDK

모든 노드에 다음 패키지 설치:

yum -y install chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse portmap fuse-libs redhat-lsb

필수 파일 다운로드 (오프라인 배포용)

Cloudera Manager 설치 및 설정

  1. 모든 노드에 cloudera-manager-centos7-cm5.14.0_x86_64.tar.gz 업로드 후 압축 해제:
    tar -zxvf cloudera-manager-centos7-cm5.14.0_x86_64.tar.gz -C /opt
  2. 모든 노드에서 실행 디렉터리 생성:
    mkdir -p /opt/cm-5.14.0/run/cloudera-scm-agent
  3. 모든 노드에서 클러스터 관리자 계정 생성:
    useradd --system --home=/opt/cm-5.14.0/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
  4. Cloudera Manager Server 노드에서 데이터베이스 초기화:
    • MySQL 드라이버 복사:
    • cp /path/to/mysql-connector-java-5.1.42-bin.jar /opt/cm-5.14.0/share/cmf/lib/
    • DB 준비 스크립트 실행:
    • /opt/cm-5.14.0/share/cmf/schema/scm_prepare_database.sh mysql -h df2 -uroot -proot --scm-host df1 scm scm scm
    • 성공 메시지 확인: All done, your SCM database is configured correctly!
  5. 모든 노드의 Agent 설정 수정:
    vim /opt/cm-5.14.0/etc/cloudera-scm-agent/config.ini
    • server_host 값을 CM Server 노드의 호스트네임으로 변경
  6. Server 노드에 Parcel 파일 복사:
    cp CDH-5.14.0-1.cdh5.14.0.p0.23-el7.parcel* /opt/cloudera/parcel-repo/
    • .sha1 파일을 .sha로 이름 변경:
    • mv CDH-5.14.0-1.cdh5.14.0.p0.23-el7.parcel.sha1 CDH-5.14.0-1.cdh5.14.0.p0.23-el7.parcel.sha
  7. 모든 관련 디렉터리 권한 부여:
    chown -R cloudera-scm:cloudera-scm /opt/cloudera
    chown -R cloudera-scm:cloudera-scm /opt/cm-5.14.0
  8. Cloudera Manager 시작:
    • Server 노드:
    • /opt/cm-5.14.0/etc/init.d/cloudera-scm-server start
      /opt/cm-5.14.0/etc/init.d/cloudera-scm-agent start
    • 다른 모든 노드:
    • /opt/cm-5.14.0/etc/init.d/cloudera-scm-agent start

서비스가 정상적으로 시작되면, 브라우저에서 http://[서버IP]:7180 접속.

클러스터 서비스 설치

기본 로그인: admin / admin
설치 프로세스 진행 시, 아래 사항 주의:

  • 처음 설치 시 경고 발생 시, 각 노드에서 다음 명령어 실행:
  • echo never > /sys/kernel/mm/transparent_hugepage/defrag
    echo never > /sys/kernel/mm/transparent_hugepage/enabled
    echo 'vm.swappiness=10' >> /etc/sysctl.conf
    sysctl vm.swappiness=10
  • 재실행 후 경고 사라짐 확인

다음 단계에서 HiveOozie를 설치할 경우, MySQL에서 미리 데이터베이스 생성 및 권한 부여:

CREATE DATABASE hive;
CREATE DATABASE oozie;

GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%' IDENTIFIED BY 'hive';
GRANT ALL PRIVILEGES ON *.* TO 'oozie'@'%' IDENTIFIED BY 'oozie';

FLUSH PRIVILEGES;

서비스 선택 시, 사용자 정의 서비스 선택 → 필요한 서비스 (HDFS, YARN, Hive, ZooKeeper, HBase, Kafka 등) 추가 → 설치 진행

Hive 설치 전, Hive 실행 노드에 MySQL 드라이버 복사:

cp mysql-connector-java-5.1.42-bin.jar /opt/cloudera/parcels/CDH-5.14.0-1.cdh5.14.0.p0.24/lib/hive/lib/

Spark 2 통합 설치

  1. 모든 노드에서 수행:
    • CSD 파일을 /opt/cloudera/csd 폴더에 업로드
    • 기존 .jar 파일은 삭제 또는 백업
    • 권한 조정:
      chown cloudera-scm:cloudera-scm SPARK_ON_YARN-2.1.0.cloudera1.jar
    • Parcel 파일을 /opt/cloudera/parcel-repo에 복사
    • 동일 파일명(예: manifest.json)이 있을 경우, 백업 처리
  2. Cloudera Manager 및 클러스터 서비스 일시 중단 후 재시작:
  3. service cloudera-scm-agent restart
    service cloudera-scm-server restart
  4. CDH Web UI → Hosts → Parcels → 새로 등록된 Spark2 패키지 확인
  5. 배포 → 활성화 순차 진행
  6. Spark History Server 실행 노드에서 임시 디렉터리 생성 및 권한 설정:
  7. mkdir -p /user/spark/spark2ApplicationHistory
    chown -R spark:spark /user/spark
  8. 클러스터 → 서비스 추가 → Spark2 서비스 추가

Kafka 1.0.1 통합 설치

  • 지원 여부 확인: Cloudera 공식 문서
  • CDH 5.14.0 + Kafka 1.0.1 지원됨
  • Parcel 다운로드: http://archive.cloudera.com/kafka/parcels/3.1.0/
  • 파일명 수정:
  • mv KAFKA-3.1.0-1.3.1.0.p0.35-el7.parcel.sha1 KAFKA-3.1.0-1.3.1.0.p0.35-el7.parcel.sha
  • manifest.json 파일 내 해시값 교체:
  • cat KAFKA-3.1.0-1.3.1.0.p0.35-el7.parcel.sha
    ae0b0c0cc09c953de756eb2eb490e62665dd28ad
  • 해당 해시값을 manifest.json 내 해당 섹션에 반영
  • 모든 파일을 /opt/cloudera/parcel-repo/에 복사:
  • cd /opt/cloudera/parcel-repo/
    mv manifest.json manifest.json.bak
    cp /path/to/kafka_parcel/* ./
    
  • CSD 파일 다운로드: http://archive.cloudera.com/csds/kafka/
  • 다운로드한 Kafka-1.2.0.jar/opt/cloudera/csd에 복사하고 권한 설정
  • Cloudera Manager 재시작 후, Web UI에서 새 Parcel 검색 → 배포 → 활성화
  • 서비스 추가 → Kafka 서비스 추가

Kafka 시작 오류 해결

기본 설정에서 브로커 메모리 제한이 너무 낮아 발생하는 문제:

  • CDH 설정에서 broker.memory.mb 값이 50M로 설정되어 있음
  • 정상 동작을 위해 최소 1024MB 이상으로 조정
  • 클러스터 설정 → Kafka 서비스 → 구성 → broker.memory.mb 수정

태그: cdh Cloudera Manager Spark kafka hadoop

7월 26일 19:33에 게시됨