- Apache Ambari 기본 설치 

- root 계정이 아닌 계정으로 설치. 이부분이 아주.........xx했음

- http://www.dbility.com/272 참고 아주 잘되어 있음 


Ambari Build


▶ 사전 설치

  • maven 3.5 설치 이상 필수

$ sudo yum install rpm-build

$ sudo yum install python-devel

$ sudo yum install git

$ sudo yum install npm


(1)  Ambari Build

  1. Ambari Download


$ wget http://apache.tt.co.kr/ambari/ambari-2.6.2/apache-ambari-2.6.2-src.tar.gz

$ tar -zxvf apache-ambari-2.6.2-src.tar.gz



  1. Ambari Build

     (상당한 시간이 걸림 1시간 ~ 2시간)

$  cd apache-ambari-2.6.2-src

$  mvn versions:set -DnewVersion=2.6.2.0.0

$  pushd ambari-metrics

$  mvn versions:set -DnewVersion=2.6.2.0.0

$  popd

$  mvn -B clean install rpm:rpm -DnewVersion=2.6.2.0.0 -DskipTests -Dpython.ver="python >= 2.6"



     3) Ambari Build 정상 유무 확인


$  cd ambari-server/target/rpm/ambari-server/RPMS/x86_64

$  ambari-server-2.6.2.0-0.x86_64.rpm  

$  cd ~/apache-ambari-2.6.2-src/ambari-agent/target/rpm/ambari-agent/RPMS/x86_$ $ ambari-agent-2.6.2.0-0.x86_64.rpm

  

   4) Ambari Build 중 예외 (난 안나옴)

a) * jms , jmx관련 에러 발생시에만 아래와 같이 대응 필요

$ vi jms-1.1.pom.xml


<?xml version="1.0" encoding="UTF-8"?>

<project>

 <modelVersion>4.0.0</modelVersion>

 <groupId>javax.jms</groupId>

 <artifactId>jms</artifactId>

 <version>1.1</version>

 <name>Java Message Service</name>

 <description>

   The Java Message Service (JMS) API is a messaging standard that allows application components based on the Java 2 Platform, Enterprise Edition (J2EE) to create, send, receive, and read messages. It enables distributed communication that is loosely coupled, reliable, and asynchronous.

 </description>

 <url>http://java.sun.com/products/jms</url>

 <distributionManagement>

   <downloadUrl>http://java.sun.com/products/jms/docs.html</downloadUrl>

 </distributionManagement>

 <licenses>

   <license>

     <name>The Apache Software License, Version 2.0</name>

     <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>

     <distribution>repo</distribution>

   </license>

 </licenses>

</project>

:wq!


$ mvn install:install-file -Dfile=jms-1.1.pom -DgroupId=javax.jms -DartifactId=jms -Dversion=1.1 -Dpackaging=jar

$ vi jmxtools-1.2.1.pom.xm


<?xml version="1.0" encoding="UTF-8"?>

<project>

  <modelVersion>4.0.0</modelVersion>

 <groupId>com.sun.jdmk</groupId>

 <artifactId>jmxtools</artifactId>

 <version>1.2.1</version>

 <distributionManagement>

   <status>deployed</status>

 </distributionManagement>

 <licenses>

   <license>

     <name>The Apache Software License, Version 2.0</name>

     <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>

     <distribution>repo</distribution>

   </license>

 </licenses>

</project>

$ vi jmxri-1.2.1.pom.xml

<?xml version="1.0" encoding="UTF-8"?>

<project>

 <modelVersion>4.0.0</modelVersion>

 <groupId>com.sun.jmx</groupId>

 <artifactId>jmxri</artifactId>

 <version>1.2.1</version>

 <distributionManagement>

   <status>deployed</status>

 </distributionManagement>

 <licenses>

   <license>

     <name>The Apache Software License, Version 2.0</name>

     <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>

     <distribution>repo</distribution>

   </license>

 </licenses>

</project>

:wq!


$  mvn install:install-file -Dfile=jmxtools-1.2.1.pom -DgroupId=com.sun.jdmk -DartifactId=jmxtools -Dversion=1.2.1 -Dpackaging=jar

$  mvn install:install-file -Dfile=jmxri-1.2.1.pom -DgroupId=com.sun.jmx -DartifactId=jmxri -Dversion=1.2.1 -Dpackaging=jar




(2)  Ambari Server Install


▶ 사전 설치

  • root 계정으로 설치 하지 않는경우, non-root 계정 준비 (ex : 1. sudo 2. NOPASSWD (sudo권한을 가지면서 패스워드 입력이 필요 없어야 함))

  • 다른 문서를 보면 visudo를 이용해서 패스별로 설정하던데.. 보안이슈를 좀 유도리있게 적용해서 하는게 속편하다 root면 만고땡이지만. 실무에서 그게 어찌 쉽게 되던가.

  • Mysql jar Download

$ wget -P /usr/share/java/ http://central.maven.org/maven2/mysql/mysql-connector-java/6.0.6/mysql-connector-java-6.0.6.jar  



  1. Ambari Server install

$ sudo yum localinstall ambari-server-2.6.2.0-0.x86_64.rpm  


  1. Ambari Server Setting

java 버전은 기본 제공하는 버전 추천 : 최신 java 로 설치시 ssl 관련해서 후에 문제가 됨

$ sudo -s

$ vi .bashrc // root 에 추가

export buildNumber=2.6.2.0.0   // 추가

$ source .bashrc

$ exit

$ vi .bashrc

export buildNumber=2.6.2.0.0   // 추가

$ source .bashrc

$ sudo -E ambari-server setup // -E 옵션이 포인트


Using python  /usr/bin/python

Setup ambari-server

Checking SELinux...

SELinux status is 'disabled'

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

//root 계정이외 non root 계정으로 진행하기 위해서 Yes

Enter user account for ambari-server daemon (root):nonroot        //적당한 계정명 설정

Adjusting ambari-server permissions and ownership...

Checking firewall status...

Checking JDK...

[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. If you plan to use Kerberos,please make sure JCE Unlimited Strength Jurisdiction Policy Files are valid on all hosts.

Path to JAVA_HOME: /usr/java/default/

Validating JDK on Ambari Server...done.

Checking GPL software agreement...

GPL License for LZO: https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html

Enable Ambari Server to download and install GPL Licensed LZO packages [y/n] (n)? n

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 (1): 3

Hostname (localhost): mysql에 설치되어있는 서버

Port (3306):

Database name (ambari): db명

Username (ambari): db유저

Enter Database Password (bigdata): passwd 특수기호 안됨

Configuring ambari database...

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)?

Extracting system views...

.

Adjusting ambari-server permissions and ownership...

Ambari Server 'setup' completed successfully.


  1. Mysql 설정

Mysql 에서 계정 생성 및 권한은 기타 다른 블로그 참조

$ source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql


  1. ambari properties setting

$ sudo vi /etc/ambari-server/conf/ambari.properties


server.jdbc.driver.path=/usr/share/java/mysql-connector-java-6.0.6.jar  //추가  

server.jdbc.url=jdbc:mysql://xxxxxxxxx:3306/ambari?serverTimezone=UTC //추가



  1. ambari server start

$ ambari-server start


(3)  Ambari Agent Install


  1. Ambari Agent install

$ sudo yum localinstall ambari-agent-2.6.2.0-0.x86_64.rpm  

$ sudo -s

$ vi .bashrc

export buildNumber=2.6.2.0.0   // 추가

$ source .bashrc

$ exit

$ vi .bashrc

export buildNumber=2.6.2.0.0   // 추가

$ source .bashrc


  1. Ambari Setup File Update

원래라면 계정을 ambari server 계정이 그대로 적용되어야 할거 같지, 왠일인지
root 로 계속 진행되어 임의로 agent 를 setup하는 코드를 수정
- 원인을 아시는분 공유 부탁드립니다.

$ vi /usr/lib/ambari-server/lib/ambari_server/setupAgent.py


313   expected_hostname = args[0]

314   passPhrase = args[1]

315   hostname = args[2]

316   user_run_as = "nonroot"  // server 에서 setup 하는 코드를 수정해서 non-root 설정을 유지 시킨다.  ambar-servet setup 에서 작성한 user 명

317

318   projectVersion = ""



+ Recent posts