(2) HDP, Ambari-2.7.4 설치를 위한 CentOS 기본 설정

1. 설치 관련 이슈

- HDP를 배포하던 HortonworksCloudera와 합병하면서 HDP 관련 공식 문서들은 cloudera 홈페이지에서 확인할 수 있으며 다음 링크를 통해 확인 가능하다.

https://docs.cloudera.com/HDPDocuments/Ambari-2.7.4.0/bk_ambari-installation/content/ch_Getting_Ready.html

- Ambari 버전 별로 설치 매뉴얼을 확인할 수 있으며 현재 기준으로 최신버전인 2.7.5 버전은 설치 과정에서 cloudera 계정인증 과정이 필요하다. 반면 한 단계 낮은 2.7.4 버전은 인증이 필요 없기 때문에 이를 설치함

 

1. FDQN을 위한 hosts 파일 수정

- HDP 설치할 때 각 노드들을 접근하는 방식으로 FQDN(Fully Qualified Domain Name)를 사용함

- 모든 노드가 동일하게 설정되어야함

- /etc/hosts 파일을 편집기로 열어서 맨 밑에 각 노드들에 대한 IPhostname을 설정

             192.168.0.14 hdp01 hdp01.test.com

             192.168.0.15 hdp02 hdp02.test.com

             192.168.0.16 hdp03 hdp03.test.com

             192.168.0.14 hdp01 hdp01.test.com             
             192.168.0.15 hdp02 hdp02.test.com             
             192.168.0.16 hdp03 hdp03.test.com

- hosts 파일 적용을 위해 재부팅

 

2. ambari 설치를 위한 계정 생성 및 권한 부여

- ambari-server ambari-agent 설치에 사용될 계정으로 root가 아닌 별도의 계정을 생성하여 관리하는게 좋음. HDP를 설치할 모든 노드에게 동일하게 설정 필요함

#adduser ambari
#passwd ambari

- ambari에게 root권한 부여

 

#vi /etc/sudoers

아래 설정 추가

ambari  ALL=NOPASSWD:             ALL

 

 

 

3. 모든 노드가 서로 자유롭게 접속 기능하도록 공개키 생성 및 공유 ssh-keygen

- ambari-server가 설치될 메인노드에서 ssh-keygen으로 공개키 생성

- 먼저 ambari 계정으로 변환

#su ambari
#ssh-keygen

엔터->엔터->엔터->키 생성

 

 

- 생성된 키를 ambari-agent가 설치될 나머지 모든 노드에 복사하여 공유

#ssh-copy-id ambari@hdp02
#ssh-copy-id ambari@hdp03

yes -> ambari 비밀번호 -> 복사 끝

 

 

 

- 이후 hdp01 서버에서 ssh 명령어를 통해 다른 노드를 접속했을 때 비밀번호를 물어보지 않는다면 정상적으로 설치된 것임

 

4. 기본 도구 설치 Python. Java, Mysql

: pythonjava는 모든 노드에 동일한 버전과 경로에 설치되어있어야 함

- Ambari 가이드에 따르면 파이썬 2.7 이상 버전이 설치되어야 함

: CentOS7 에는 python 2.7.5 버전이 기본 설치되어 있음

- 자바는 1.8버전 이상(Oracle_JDK or Open_JDK 둘 다 설치 가능함 확인)

: 모든 노드에 동일한 버전 동일한 경로로 설치해야함

: 라이선스 문제가 없는 Open-JDK-1.8 버전을 설치함

 

#yum install java-1.8.0-openjdk-devel.x86_64

- JAVA_HOME 환경 변수 추가

javac의 경로 찾기

 

#which javac

검색된 위치의 원본 위치 찾기

#readlink –f /usr/bin/javac

한번 더 검색된 위치의 원본 위치 찾기

#readlink –f /etc/alternatives/javac

원본 경로 = /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64/bin/javac

편집기로 /etc/profile 파일을 열어서 맨 밑에 아래 내용을 추가

             export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64
             export PATH=$PATH:$JAVA_HOME/bin
             export CLASSPATH="."

저장한 내용을 적용

 

#source /etc/profile

 

- HiveOozie와 같이 해당 서비스의 관리용 DB가 필요한 경우를 위한 DB가 설치되어 있어야함

: 여러 노드 중 한 노드에 설치해 공유할 수 있고 해당 서비스의 Master가 될 노드에 개별적으로 설치해 관리해도 됨

: 최신버전인 MySQL8.0 community 버전을 설치해 봤으나 ambari 테이블 중 member테이블이 생성되지 않아서 진행이 되지 않았다. 찾아보니 호환성에 문제가 있다고 한다. mysql5.7 버전을 추천한다.

CentOS에 기본등록된 mariadbmysql로 바꿔 설치하기 위해 설치파일 다운로드 후 repository 등록

#sudo yum localinstall https://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
#sudo yum install mysql-community-server

설치 완료 후 root 계정으로 전환하여 아래 임시 비밀번호를 확인하자. 아무리 검색해도 임시비밀번호가 나오지 않아서 헤맸었는데 계정을 root로 바꾸어 검색하니 출력되었다.

또는, service mysqld start 로 한번 실행해 주면 로그파일에 내용이 생성된다.

 

#grep 'temporary password' /var/log/mysqld.log

 

혹시나 로그파일이

그리고 mysql의 기본적인 보안설정을 할 수 있는 명령어를 실행

 

#/usr/bin/mysql_secure_installation

비밀번호를 변경할 수 있는데 정책이 강화되어서 8자리 이상에 대문자랑 숫자가 포함되어야함. 일단 그렇게 하고 나중에 변경하면 됨

{Abcd!234}로 변경

암호 정책을 낮추기 위해 mysql 설정 파일을 다음과 같이 수정

 

#vi /etc/my.cnf

아래 2줄 추가

[mysqld]
validate_password-policy=LOW
validate_password-length=4

 

mysql 서비스를 재시작하고

 

#sudo systemctl restart mysqld

mysql 접속 후 ambari 계정 생성(외부 접속도 허용해주자)

HDP 서비스들 중 hive는 기본으로 설치가 되는데 이때 DB와 계정이 필요하니 함께 생성하자

#sudo mysqld u root p

#sudo mysqld –u root –p
mysql>create user 'ambari'@'localhost' identified by 'ambari';
mysql>grant all privileges on *.* to 'ambari'@'localhost' identified by 'ambari' with grant option;
mysql>create user 'ambari'@'%' identified by 'ambari';
mysql>grant all privileges on *.* to 'ambari'@'%' identified by 'ambari' with grant option; 
mysql>flush privileges;            
mysql>create database hive;         
mysql>create user 'hive'@'localhost' identified by 'hive';       
mysql>grant all privileges on *.* to 'hive'@'localhost' identified by 'hive' with grant option;  
mysql>create user 'hive'@'%' identified by 'hive';         
mysql>grant all privileges on *.* to 'hive'@'%' identified by 'hive' with grant option;
mysql>flush privileges;

 - JDBC Connector 설치 및 확인

#sudo yum install mysql-connector-java*

#sudo yum install mysql-connector-java*

설치가 완료되면 아래 경로에 커넥터가 링크되어 있음

 

5. Ambari 설치

: Cloudera 계정 인증이 필요 없는 ambari-2.7.4 버전을 다운로드받아 설치

오랜만에 다시 확인해보니 모든 버전에서 Cloudera 계정 인증을 필요로하게 되었다.

아래 미러 사이트에서 소스를 직접 받아 빌드할 수 있으니 참고하자.

https://cwiki.apache.org/confluence/display/AMBARI/Installation+Guide+for+Ambari+2.7.4 

 

Installation Guide for Ambari 2.7.4 - Apache Ambari - Apache Software Foundation

Build and install Ambari 2.7.4 Refer Ambari Development for prerequisites and additional information on how to build Apache Ambari. Step 1: Download and build Ambari 2.7.4 source Go to http://www.apache.org/dyn/closer.cgi/ambari/ambari-2.7.4 and find

cwiki.apache.org

다운로드를 위해 wget 패키지 설치

#sudo yum install wget
#sudo wget -nv http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.7.4.0/ambari.repo -O /etc/yum.repos.d/ambari.repo
#sudo yum repolist

 

#sudo yum install ambari-server

Importing GPG-KEY 여부: y 눌러 진행

패키지 설치 완료

-인스톨 전에 앞에서 설치한 JDBC 커넥터 경로를 지정

#sudo ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java.jar

설정 완료

 

ambari 서버 설치 전 mysql에서 Ambari table 생성

 

mysql>create database ambari;
mysql>use ambari;
mysql>SOURCE /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql;

 마지막으로 인스톨 시작

 

#sudo ambari-server setup

이대로 ambari-server를 실행하면 문제없이 되어야 한다..

 

#sudo ambari-server start

 

그런데 에러메시지가 떠서 확인해보니 mysqldb time-zone이 맞지않아 에러가 발생하는 것 같다.

ambari-server start 에러 로그 확인

 

#vi /etc/ambari-server/conf/ambari.properties

 

DBtimezoneAsia/Soul로 변경하면 해결되는 것 같은데, 기본 정보가 mysql table에 없어서 이를 따로 설치해야 한다. 아래 링크에서 본인 버전에 맞는 sql 파일을 다운로드받아 설치

- https://dev.mysql.com/downloads/timezones.html

 

 

- mysql db를 선택하고 쿼리를 실행, 아래와 같이 검색이 되면 설치가 정상적으로 된 것임.

 

select * from mysql.time_zone_name where NAME LIKE '%Seoul';

- 이후 /etc/my.cnf 파일에 다음을 추가

default-time-zone=Asia/Seoul

-다시 ambari-server start! 성공 메시지가 뜨면 해당 도메인의 8080포트로 ambari-server 접속이 가능함

- 기본 아이디 비번은 admin/admin

 

이상 설치 완료!

ambari-server start 에러와 관련된 모든 메시지는 아래 경로에서 확인 가능하니 문제가 있다면 꼭 확인해보면서 해결

#vi /etc/ambari-server/conf/ambari.properties

 

 

 

 

 

 

 

 

 

 

+ Recent posts