환경 준비
운영체제: 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 5
파일명:cloudera-manager-centos7-cm5.14.0_x86_64.tar.gz
다운로드 링크: https://archive.cloudera.com/cm5/cm/5/ - CDH Parcel 패키지 (버전 일치 필수)
다운로드 경로: https://archive.cloudera.com/cdh5/parcels/5.14.0/
아래 3개 파일 포함:CDH-5.14.0-1.cdh5.14.0.p0.23-el7.parcelCDH-5.14.0-1.cdh5.14.0.p0.23-el7.parcel.sha1manifest.json
- MySQL JDBC 드라이버
파일명:mysql-connector-java-5.1.42-bin.jar
다운로드 링크: https://dev.mysql.com/downloads/connector/j/
Cloudera Manager 설치 및 설정
- 모든 노드에
cloudera-manager-centos7-cm5.14.0_x86_64.tar.gz업로드 후 압축 해제:tar -zxvf cloudera-manager-centos7-cm5.14.0_x86_64.tar.gz -C /opt - 모든 노드에서 실행 디렉터리 생성:
mkdir -p /opt/cm-5.14.0/run/cloudera-scm-agent - 모든 노드에서 클러스터 관리자 계정 생성:
useradd --system --home=/opt/cm-5.14.0/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm - Cloudera Manager Server 노드에서 데이터베이스 초기화:
- MySQL 드라이버 복사:
cp /path/to/mysql-connector-java-5.1.42-bin.jar /opt/cm-5.14.0/share/cmf/lib/ - DB 준비 스크립트 실행:
- 성공 메시지 확인:
All done, your SCM database is configured correctly! - 모든 노드의 Agent 설정 수정:
vim /opt/cm-5.14.0/etc/cloudera-scm-agent/config.iniserver_host값을 CM Server 노드의 호스트네임으로 변경
- 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 - 모든 관련 디렉터리 권한 부여:
chown -R cloudera-scm:cloudera-scm /opt/cloudera chown -R cloudera-scm:cloudera-scm /opt/cm-5.14.0 - Cloudera Manager 시작:
- Server 노드:
- 다른 모든 노드:
/opt/cm-5.14.0/share/cmf/schema/scm_prepare_database.sh mysql -h df2 -uroot -proot --scm-host df1 scm scm scm
/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
다음 단계에서 Hive와 Oozie를 설치할 경우, 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 통합 설치
- CDH 5.14.0 기준, Spark 2.1.0 사용
- CSD 파일 다운로드: http://archive.cloudera.com/spark2/csd/
- Parcel 파일 다운로드: http://archive.cloudera.com/spark2/parcels/
- 모든 노드에서 수행:
- 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)이 있을 경우, 백업 처리
- CSD 파일을
- Cloudera Manager 및 클러스터 서비스 일시 중단 후 재시작:
- CDH Web UI → Hosts → Parcels → 새로 등록된 Spark2 패키지 확인
- 배포 → 활성화 순차 진행
- Spark History Server 실행 노드에서 임시 디렉터리 생성 및 권한 설정:
- 클러스터 → 서비스 추가 → Spark2 서비스 추가
service cloudera-scm-agent restart
service cloudera-scm-server restart
mkdir -p /user/spark/spark2ApplicationHistory
chown -R spark:spark /user/spark
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
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/* ./
Kafka-1.2.0.jar를 /opt/cloudera/csd에 복사하고 권한 설정Kafka 시작 오류 해결
기본 설정에서 브로커 메모리 제한이 너무 낮아 발생하는 문제:
- CDH 설정에서
broker.memory.mb값이 50M로 설정되어 있음 - 정상 동작을 위해 최소 1024MB 이상으로 조정
- 클러스터 설정 → Kafka 서비스 → 구성 →
broker.memory.mb수정