본문으로 바로가기



오늘은 Apache Ambari를 설치하는 과정을 설명할까 한다.


|Ambari 소개 

Ambari에 대한 소개는 site에 들어가면 다음과 같이 표현되어 있다

The Apache Ambari project is aimed at making Hadoop management simpler by developing software for provisioning, managing, and monitoring Apache Hadoop clusters. Ambari provides an intuitive, easy-to-use Hadoop management web UI backed by its RESTful APIs.


쉽게 말해 Hadoop eco 설치, 설정배포, 모니터링, Alert 등의 운영 편의성을 제공하는 툴 정도로 생각하면 된다.

사실 단순하게 말하면 그런것이고 내부적으로는 상당한 기능과 확장성을 갖추고 있다. 

실제 3rd party 업체들이 쉽게 Ambari에 기능을 추가할 수 있도록 stack 이나 view 등의 확장 기능도 제공하고 있다.

Ambari와 유사한 툴은 Cloudera Manager라는 툴이 있다.


Ambari나 Cloudera Manager와 같은 운영툴이 없던 시절에 Hadoop 설치는 여간 까다로운 것이 아니었으며, 모니터링도 상당히 번거로웠다.

사실 그 당시만 해도 하둡 설치할 수 있다는 것만 해도 상당한 Know-how 였으나, 최근에는 이런 툴들이 보급 되면서 설치나 운영도 과거에 비해 상당히 장벽이 낮아졌다.


추가로 언급하자면 stack 은 Ambari가 기본 제공하는 설치/배포 기능에 다른 eco 들도 쉽게 추가할 수 있도록 해주며 ,

view는 ambari에 새로 개발된 기능의 UI를 쉽게 추가할 수 있도록 API를 지원한다. 

이번 블로깅을 설치에 초점을 두고 작성하며, 추 후에 stack 이나 view 관련 블로깅을 추가할까 한다.



|Ambari 설치 준비

Ambari 설치에 대한 참고를 Apache site에서 할 수도 있으나 필자는 익숙한 Hortonworks site의 Ambari 설치 guide를 따르겠다.

참고 URL

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

https://docs.hortonworks.com/HDPDocuments/Ambari-2.4.2.0/bk_ambari-installation/content/download_the_ambari_repo_ubuntu14.html


Ambari 설치 전 시스템 요구사항을 확인해야 하는데 그중 가장 중요한 것이 java와 meta정보가 기록될 database 이다.

https://docs.hortonworks.com/HDPDocuments/Ambari-2.4.2.0/bk_ambari-installation/content/meet_minimum_system_requirements.html


현재 java는 Oracle JDK 1.8 64-bit (minimum JDK 1.8.0_77) 를 요구하고 있다. 

이전 블로깅에서 java 설치는 이미 했기 때문에 여기서는 생략한다.

ambari에서 db는 여러 설정정보나 계정정보등을 기록하기 위한 meta 정보 저장용도로 사용한다.

여러 db를 쓸 수 있도록 지원하는데 필자는 익숙한 mysql을 선택했다.


mysql을 설치해보자

1) 설치 가능 mysql-server 정보 확인

    sudo apt-cache search mysql-server


2) mysql 설치

    sudo apt-get install mysql-server-5.6


3) mysql에 로그인

    mysql -u root -


4) default db 변경

    use mysql;


5) 권한 부여

    GRANT ALL PRIVILEGES ON *.* to 'root'@'%' IDENTIFIED BY '비밀번호';

    CREATE USER 'ambari'@'%' IDENTIFIED BY '비밀번호';

    GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'%';

    CREATE USER 'ambari'@'localhost' IDENTIFIED BY '비밀번호';

    GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'localhost';

    flush privileges;


6) mysql 인코딩 확인

   show variables like 'c%';

    --> utf8이 아닌경우 utf8로 변경

mysql의 경우 대부분이 그냥 설치할 경우 latin1의 인코딩을 따르고 있는데 이럴경우 hive등의 한글 주석시 전부 깨져서 들어간다. 

utf8로 변경하는 부분은 다른 블로깅을 참고해서 추가하기 바란다.



| mysql jdbc-driver 추가

다음은 ambari에서 mysql에 접근할 수 있도록 jdbc-driver를 다운 받거나 아니면 다음 명령어로 설치를 한다.

apt-get install libmysql-java

설치가 완료되면 /usr/share/java 에 mysql-connector-java.jar 파일로 link 가 걸려 있는 것을 확인할 수 있다.



| Ambari 설치

Ambari 설치는 hortonworks의 설치 guide대로 쭉 따라가면 되는데, 사실 처음 하는 사람들에게는 생각보다 까다롭다

https://docs.hortonworks.com/HDPDocuments/Ambari-2.4.2.0/bk_ambari-installation/content/download_the_ambari_repo_ubuntu14.html


Ambari Repository 추가뒤 Ambari-server를 설치하자

1) root 계정으로 로그인


2) Ambari repository 파일 추가

   wget -nv http://public-repo-1.hortonworks.com/ambari/ubuntu14/2.x/updates/2.4.2.0/ambari.list -O /etc/apt/sources.list.d/ambari.list

   apt-key adv --recv-keys --keyserver keyserver.ubuntu.com B9733A7A07513CAD

   apt-get update


3) Ambari Server 설치

   apt-get install ambari-server



| Mysql Database 생성

Mysql에 Ambari가 사용할 Database와 Table을 생성해야 한다.

1) root 계정으로 mysql 로그인

   mysql -u root -p    


2) ambari database 생성

   create database ambari


3) Ambari table 생성

   SOURCE /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql;


4) Table 생성 확인



| Ambari Server 세팅

다음은 ambari-server 설정값을 세팅해야 하는데 여기부터는 guide 보다는 각자의 환경에 맞게 모두 바꿔줘야 한다.

아래는 앞의 블로그를 기준으로 필자가 설정한 정보를 그대로 옮겨놓았으니 참고해서 설정하면 된다.

root@ubuntu-01:~# ambari-server setup

Using python  /usr/bin/python

Setup ambari-server

Checking SELinux...

WARNING: Could not run /usr/sbin/sestatus: OK

Customize user account for ambari-server daemon [y/n] (n)? y

Enter user account for ambari-server daemon (root):root

Adjusting ambari-server permissions and ownership...

Checking firewall status...

Checking JDK...

Do you want to change Oracle JDK [y/n] (n)? y

[1] Oracle JDK 1.8 + Java Cryptography Extension (JCE) Policy Files 8

[2] Oracle JDK 1.7 + Java Cryptography Extension (JCE) Policy Files 7

[3] Custom JDK

==============================================================================

Enter choice (1): 3

WARNING: JDK must be installed on all hosts and JAVA_HOME must be valid on all hosts.

WARNING: JCE Policy files are required for configuring Kerberos security.

Path to JAVA_HOME: /usr/lib/jvm/java-8-oracle

Validating JDK on Ambari Server...done.

Completing setup...

Configuring database...

Enter advanced database configuration [y/n] (n)? y

Configuring database...

==============================================================================

Choose one of the following options:

[1] - PostgreSQL (Embedded)

[2] - Oracle

[3] - MySQL / MariaDB

[4] - PostgreSQL

[5] - Microsoft SQL Server (Tech Preview)

[6] - SQL Anywhere

[7] - BDB

==============================================================================

Enter choice (3): 3

Hostname (ubuntu-01): ubuntu-01

Port (3306): 3306

Database name (ambari): ambari

Username (ambari): ambari

Enter Database Password (bigdata):패스워드

Configuring ambari database...

Copying JDBC drivers to server resources...

Configuring remote database connection properties...

WARNING: Before starting Ambari Server, you must run the following DDL against the database to create the schema: /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql

Proceed with configuring remote database connection properties [y/n] (y)? y

Extracting system views...

.ambari-admin-2.4.2.0.136.jar

...........

Adjusting ambari-server permissions and ownership...

Ambari Server 'setup' completed successfully.



| Ambari Server 시작

이제 Ambari Server 를 시작하자

$ Ambari-server start


잠시 시간을 두고 기다리면 start 되는 로그 메시지가 올라온다.

모두 끝나면 Ambari 웹 포트(8080)로 접근해서 Ambari 로그인 창이 뜨는지 확인한다.

http://192.168.56.201:8080


sigh in

초기 로그인 비밀번호는 admin / admin 이다.



로그인 상태



| 정리

로그인까지 완료되었다면 Ambari 설치는 끝난것이다.

다음 블로깅에는 설치된 Ambari를 가지고 3대 서버로 구성된 빅데이터 클러스터를 설치해 보려한다.






댓글을 달아 주세요