1. BigTop 이란?

참고 : https://bigtop.apache.org/

2. BigTop Ambari를 이용한 Hadoop 설치

환경 :

참고 : https://snowturtle93.github.io/posts/Apache-Bigtop을-이용한-Ambari-설치-및-Hadoop-클러스터-구축/

0) 사전 구성

# ssh 구성
ssh-keygen
(엔터)
(엔터)

scp root@{hostname} mkdir ~/.ssh
scp ~/.ssh/id_rsa.pub root@{hostname}:~/.ssh/
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
Are you sure you want to continue connecting (yes/no)? Enter yes

# 방화벽 해제(Ambari 8080포트 open시 자유자재로 통신하기 위함)
systemctl stop firewalld
systemctl disable firewalld

# hosts 및 hostname 변경
vi /etc/hosts
192.168.xx.xx {hostname} # 입력

vi /etc/hostname
{hostname} # hostname 변경

# 재부팅
reboot

1) 사전 필요 환경 구성

# centos7 설치 후 아래 내용 설정
# rpm build, python devel, git설치, gcc, gcc-c++ 설치, java-openjdk 1.8 설치
sudo yum install rpm-build
sudo yum install python-devel
sudo yum install git
sudo yum install gcc
sudo yum install gcc-c++
sudo yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel

# apache maven 설치
cd /usr/local
wget <https://archive.apache.org/dist/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz>
tar -xvf apache-maven-3.6.3-bin.tar.gz
ln -s apache-maven-3.6.3 maven

# 환경변수를 통해 maven 경로 지정
vi ~/.bash_profile

*export MAVEN_HOME=/usr/local/maven
PATH=$PATH:$HOME/bin:$MAVEN_HOME/bin
export PATH*

source ~/.bash_profile

2) bigtop 다운로드

cd ~
git clone <https://github.com/apache/bigtop.git>
cd bigtop
# wget <https://archive.apache.org/dist/bigtop/bigtop-3.0.1/bigtop-3.0.1-project.tar.gz>
# tar -xvf bigtop-3.0.1-project.tar.gz
#cd bigtop-3.0.1

# 실행 가능한 task 모음
./gradlew task --all

Untitled

3) Apache Bigtop을 이용한 빌드

# Ambari 빌드

# 빌드가 완료되면 {bigtop_home}/build/ambari/rpm/RPMS/noarch 디렉토리에 rpm 파일이 생성
# 최소 경과 시간 : 3h 11m 28s
# ambari-pkg : ambari-donwload -> ambari-tar -> ambari-rpm 순으로 이어지는 task모음
./gradlew task ambari-pkg

# bigtop-ambari-mpack 빌드: Ambari에서 bigtop Stack으로 Hadoop Ecosystem을 설치 할 수 있도록하는 패키징
# 빌드가 완료되면 {bigtop_home}/build/bigtop-ambari-mpack/rpm/RPMS/noarch 디렉토리에 rpm 파일이 생성
./gradlew task bigtop-ambari-mpack-pkg

# bigtop-utils 빌드 : bigtop-ambari-mpack 설치시 필요한 도구
./gradlew task bigtop-utils-pkg

Untitled

4) 빌드된 rpm 설치

# 아래 rpm 설치시, 해당 noarch 디렉터리 경로로 지정해서 할것

# ambari-server 설치
sudo yum install {bigtop_home}/build/ambari/rpm/RPMS/noarch/ambari-server-2.7.5.0-1.el7.noarch.rpm

# ambari-agent 설치 
sudo yum install {bigtop_home}/build/ambari/rpm/RPMS/noarch/ambari-agent-2.7.5.0-1.el7.noarch.rpm

# bigtop-utils 설치
sudo yum install {bigtop_home}/build/bigtop-utils/rpm/RPMS/noarch/bigtop-utils-3.2.0-1.el7.noarch.rpm

# bigtop-ambari-mpack 설치 : 이것이 있어야 ambari 설치시에 필요한 Hadoop ecosystem stack이 등록 된다
sudo yum install {bigtop_home}/build/bigtop-ambari-mpack/rpm/RPMS/noarch/bigtop-ambari-mpack-2.7.5.0-1.el7.noarch.rpm

5) mysql 설정

참고 : https://seul96.tistory.com/330

GPG-KEY 오류 참고 : https://stackoverflow.com/questions/71239450/gpg-keys-issue-while-installing-mysql-community-server

cd ~
wget <https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm>

# (-i : 설치, -v : 상세항목 확인, -h : 패키지를 설치할 때 # 표시출력
sudo rpm -ivh mysql57-community-release-el7-11.noarch.rpm

# mysql-community-server 설치
yum -y install mysql-community-server

# (아래 에러 발생시에만 실행하고 다시 mysql-community-server 설치)
# "The GPG keys listed for the "MySQL 5.7 Community Server" 
# repository are already installed but they are not correct for this package.
# Check that the correct key URLs are configured for this repository." 
# 라는 에러가 발생하면 새로운 GPG-KEY를 발급받는다
rpm --import <https://repo.mysql.com/RPM-GPG-KEY-mysql-2022>

#mysql 서비스 시작
systemctl start mysqld
#mysql 서비스 허용
systemctl enable mysqld

# mysql 임시 비밀번호 가져오기
awk '/temporary password/{print $11}' /var/log/mysqld.log

# mysql 접속확인
mysql -u root -p {임시비밀번호}

# 접속 종료
exit
# /etc/my.cnf 파일에 아래 설정 추가.
# mysql 비밀번호 간소화, UTF8 설정.

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8

#비밀번호 관련 보안 설정.
validate_password-policy=LOW
validate_password-length=4

# mysql 재시작
sudo systemctl restart mysqld
# mysql 접속
mysql -u root -p 
Enter password : {임시비밀번호}

# 비밀번호 변경
ALTER USER "root"@"localhost" IDENTIFIED BY "root";

# 재접속
exit
mysql -u root -p 
Enter password : "root"

6) Mysql ambari Metadata 생성

# database 생성.
create database ambari;
create database hive;

# ambari 계정 생성 (hive 계정생성은 하지 않아도 된다.)
create user 'ambari'@'localhost' identified by 'ambari';
create user 'ambari'@'%' identified by 'ambari';
grant all privileges on *.* to 'ambari'@'localhost' identified by 'ambari' with grant option;
grant all privileges on *.* to 'ambari'@'%' identified by 'ambari' with grant option;
flush privileges;

# hive 계정 생성 
create user 'hive'@'localhost' identified by 'hive';
create user 'hive'@'%' identified by 'hive';
grant all privileges on *.* to 'hive'@'localhost' identified by 'hive' with grant option;
grant all privileges on *.* to 'hive'@'%' identified by 'hive' with grant option;
flush privileges;

# ambari meta table 생성
use ambari;
SOURCE /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql;

7) Ambari 설치

# mysql jdbc 커넥터 설치 
sudo yum install mysql-connector-java*
# mysql 커넥터 경로 설정 
sudo ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java.jar
# mpack 설치: 이것이 있어야 ambari 설치시에 필요한 Hadoop ecosystem stack(BGTP)이 등록 된다
sudo ambari-server install-mpack --mpack=/usr/lib/bigtop-ambari-mpack/bgtp-ambari-mpack-1.0.0.0-SNAPSHOT-bgtp-ambari-mpack.tar.gz --verbose
# ambari server 셋업
sudo ambari-server setup
# ambari server 시작
sudo ambari-server start

8) ambari 접속 ( {IP_addr}:8080 )

1) Step1 : 클러스터 이름 지정
2) Step2 :  사용할 에코시스템 스택 등록(BGTP-1.0.0)
						호스트 이름 등록, 
						master쪽 노드의 id_rsa(private key) 입력, 
						public repo 입력 : <http://repos.bigtop.apache.org/releases/1.0.0/centos/7/x86_64> 
그 외, master와 slave에 지정할 서비스를 나열
hadoop 셋팅에서 hadoop.proxyuser.*이 필수 입력란인데, 일단 *로 처리
나머지는 지정된 셋팅 그대로 진행

Untitled

Untitled

Untitled

Untitled

Untitled

Untitled

Untitled

Untitled

Untitled

Untitled

Untitled

9) 설치 결과

(Ambari)

Untitled

(ResourceManager)

Untitled

(Namenode)

Untitled

(BGTP-1.0 스택)

Untitled

Untitled

Untitled

****Bigtop 3.1.0 (latest) 기준으로 BGTP-1.0 밖에 존재하지 않고, 포함된 에코시스템 또한 (HDFS, YARN, Zookeeper 밖에 존재하지 않는다)

https://github.com/apache/bigtop/tree/master/bigtop-packages/src/common/bigtop-ambari-mpack/bgtp-ambari-mpack/src/main/resources/stacks/BGTP/1.0/services

Untitled

⇒ 다른 설치된 Ambari쪽의 HASH값을 넣어보면, 설치 실패