- 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
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 |
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 |
Ambari Server install
$ sudo yum localinstall ambari-server-2.6.2.0-0.x86_64.rpm |
Ambari Server Setting
$ 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. |
Mysql 설정
$ source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql |
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 //추가 |
ambari server start
$ ambari-server start |
(3) Ambari Agent Install
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 |
Ambari Setup File Update
$ 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 = "" |