(2) HDP, Ambari-2.7.4 설치를 위한 CentOS 기본 설정
1. 설치 관련 이슈
- HDP를 배포하던 Hortonworks가 Cloudera와 합병하면서 HDP 관련 공식 문서들은 cloudera 홈페이지에서 확인할 수 있으며 다음 링크를 통해 확인 가능하다.
- Ambari 버전 별로 설치 매뉴얼을 확인할 수 있으며 현재 기준으로 최신버전인 2.7.5 버전은 설치 과정에서 cloudera 계정인증 과정이 필요하다. 반면 한 단계 낮은 2.7.4 버전은 인증이 필요 없기 때문에 이를 설치함
1. FDQN을 위한 hosts 파일 수정
- HDP 설치할 때 각 노드들을 접근하는 방식으로 FQDN(Fully Qualified Domain Name)를 사용함
- 모든 노드가 동일하게 설정되어야함
- /etc/hosts 파일을 편집기로 열어서 맨 밑에 각 노드들에 대한 IP와 hostname을 설정
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 등
: python과 java는 모든 노드에 동일한 버전과 경로에 설치되어있어야 함
- 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
- Hive나 Oozie와 같이 해당 서비스의 관리용 DB가 필요한 경우를 위한 DB가 설치되어 있어야함
: 여러 노드 중 한 노드에 설치해 공유할 수 있고 해당 서비스의 Master가 될 노드에 개별적으로 설치해 관리해도 됨
: 최신버전인 MySQL8.0 community 버전을 설치해 봤으나 ambari 테이블 중 member테이블이 생성되지 않아서 진행이 되지 않았다. 찾아보니 호환성에 문제가 있다고 한다. mysql5.7 버전을 추천한다.
CentOS에 기본등록된 mariadb를 mysql로 바꿔 설치하기 위해 설치파일 다운로드 후 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
다운로드를 위해 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
DB의 timezone을 Asia/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
'Programming > BIG DATA' 카테고리의 다른 글
Ambari-2.7.4를 활용한 HDP-3.1.4 구축 과정-3 (1) | 2020.04.01 |
---|---|
Ambari-2.7.4를 활용한 HDP-3.1.4 구축 과정-1 (0) | 2020.04.01 |
아파치 하둡을 위한 하드웨어 추천 관련(펌) (0) | 2015.06.15 |