웹사이트 검색

RHEL/CentOS 6/5에서 CDH 4.X용 Apache Oozie 작업 흐름 스케줄러 설치 및 구성


OozieHadoop용 오픈 소스 스케줄러로 작업 간 작업 흐름과 조정을 단순화합니다. 입력 데이터에 대한 작업 간 종속성을 정의할 수 있으므로 ooze 스케줄러를 사용하여 작업 종속성을 자동화할 수 있습니다.

이 튜토리얼에서는 마스터 노드(예: master를 호스트 이름으로 namenode/JT가 설치된 위치)에 Oozie를 설치했지만 프로덕션 시스템에는 설치했습니다. oozie는 별도의 Hadoop 노드에 설치해야 합니다.

설치 지침은 AB라는 두 부분으로 나누어져 있습니다.

  1. A. Oozie 설치.
  2. B. Oozie 구성.

먼저 다음 'hostname' 명령을 사용하여 시스템 호스트 이름을 확인해 보겠습니다.

[root@master]# hostname

master

방법 A: RHEL/CentOS 6/5에 Oozie 설치

우리는 cloudera 사이트의 공식 CDH 저장소를 사용하여 CDH4를 설치합니다. 공식 CDH 다운로드 섹션으로 이동하여 CDH4(예: 4.6) 버전을 다운로드하거나 다음 wget 명령을 사용하여 저장소를 다운로드하고 설치할 수도 있습니다.

RHEL/CentOS 6에서
wget http://archive.cloudera.com/cdh4/one-click-install/redhat/6/i386/cloudera-cdh-4-0.i386.rpm
yum --nogpgcheck localinstall cloudera-cdh-4-0.i386.rpm

wget http://archive.cloudera.com/cdh4/one-click-install/redhat/6/x86_64/cloudera-cdh-4-0.x86_64.rpm
yum --nogpgcheck localinstall cloudera-cdh-4-0.x86_64.rpm
RHEL/CentOS 5에서
wget http://archive.cloudera.com/cdh4/one-click-install/redhat/5/i386/cloudera-cdh-4-0.i386.rpm
yum --nogpgcheck localinstall cloudera-cdh-4-0.i386.rpm

wget http://archive.cloudera.com/cdh4/one-click-install/redhat/5/x86_64/cloudera-cdh-4-0.x86_64.rpm
yum --nogpgcheck localinstall cloudera-cdh-4-0.x86_64.rpm

시스템에 CDH 저장소를 추가한 후에는 다음 명령을 사용하여 시스템에 Oozie를 설치할 수 있습니다.

[root@master ~]# yum install oozie

이제 oozie 클라이언트를 설치합니다(위 명령은 클라이언트 설치 부분을 다루어야 하지만 그렇지 않은 경우 아래 명령을 시도하십시오).

[root@master ~]# yum install oozie-client

참고: 위 설치에서는 시스템 시작 시 실행되도록 oozie 서비스도 구성합니다. 잘했어요! 설치의 첫 번째 부분이 완료되었습니다. 이제 oozie를 구성하는 두 번째 부분으로 이동하겠습니다.

방법 B: RHEL/CentOS 6/5의 Oozie 구성

oozie는 Hadoop과 직접 상호 작용하지 않으므로 여기서는 매핑된 구성이 필요하지 않습니다.

주의: oozie가 실행되지 않는 동안 모든 설정을 구성하십시오. 즉, oozie 서비스가 실행되지 않는 동안 아래 단계를 따라야 한다는 의미입니다.

Oozie에는 기본 DB로 'Derby'가 내장되어 있지만 Mysql DB를 사용하는 것이 좋습니다. 그럼 다음 글을 참고하여 MySQL 데이터베이스를 설치해 보겠습니다.

  1. RHEL/CentOS 6/5에 MySQL 데이터베이스 설치

설치 부분이 완료되면 다음으로 다음과 같이 oozie DB를 생성하고 권한을 부여합니다.

[root@master ~]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.5.38 MySQL Community Server (GPL) by Remi

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create database oozie;
Query OK, 1 row affected (0.00 sec)

mysql> grant all privileges on oozie.* to 'oozie'@'localhost' identified by 'oozie';
Query OK, 0 rows affected (0.00 sec)

mysql> grant all privileges on oozie.* to 'oozie'@'%' identified by 'oozie';
Query OK, 0 rows affected (0.00 sec)

mysql> exit
Bye

다음으로 MySQL용 Oozie 속성을 구성합니다. 'oozie-site.xml' 파일을 열고 표시된 대로 다음 속성을 편집합니다.

[root@master ~]# cd /etc/oozie/conf
[root@master conf]# vi oozie-site.xml

다음 속성을 입력합니다(마스터 [내 호스트 이름]을 호스트 이름으로 바꾸세요).

<property>
        <name>oozie.service.JPAService.jdbc.driver</name>
        <value>com.mysql.jdbc.Driver</value>
    </property>
    <property>
        <name>oozie.service.JPAService.jdbc.url</name>
        <value>jdbc:mysql://master:3306/oozie</value>
    </property>
    <property>
        <name>oozie.service.JPAService.jdbc.username</name>
        <value>oozie</value>
    </property>
    <property>
        <name>oozie.service.JPAService.jdbc.password</name>
        <value>oozie</value>
    </property>

MySQL JDBC 연결 드라이버 JAR을 다운로드하여 Oozie lib 디렉터리에 추가합니다. 그렇게 하려면 터미널에서 다음 심각한 명령을 실행하십시오.

[root@master oozie]# cd /tmp/
[root@master tmp]# wget http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.31.tar.gz
[root@master tmp]# tar -zxf mysql-connector-java-5.1.31.tar.gz	
[root@master tmp]# cd mysql-connector-java-5.1.31
[root@master mysql-connector-java-5.1.31]# cp mysql-connector-java-5.1.31-bin.jar /var/lib/oozie/

아래 명령을 실행하여 oozie 데이터베이스 스키마를 생성하세요. 이 작업은 oozie 사용자로 실행되어야 합니다.

[root@master ~]# sudo -u oozie /usr/lib/oozie/bin/ooziedb.sh create -run
샘플 출력
setting OOZIE_CONFIG=/etc/oozie/conf
setting OOZIE_DATA=/var/lib/oozie
setting OOZIE_LOG=/var/log/oozie
setting OOZIE_CATALINA_HOME=/usr/lib/bigtop-tomcat
setting CATALINA_TMPDIR=/var/lib/oozie
setting CATALINA_PID=/var/run/oozie/oozie.pid
setting CATALINA_BASE=/usr/lib/oozie/oozie-server-0.20
setting CATALINA_OPTS=-Xmx1024m
setting OOZIE_HTTPS_PORT=11443
...
DONE
Oozie DB has been created for Oozie version '3.3.2-cdh4.7.0'
The SQL commands have been written to: /tmp/ooziedb-8250405588513665350.sql

oozie 웹 콘솔을 활성화하려면 인터넷에서 ExtJS lib를 다운로드해야 합니다. 공식 CDH ExtJS 페이지로 이동하여 ExtJS 버전 2.2 라이브러리를 다운로드하거나 다음 명령을 사용하여 패키지를 다운로드할 수 있습니다.

[root@master ~]# cd /tmp/
[root@master tmp]# wget http://archive.cloudera.com/gplextras/misc/ext-2.2.zip
[root@master tmp]# unzip ext-2.2.zip
[root@master tmp]# mv ext-2.2 /var/lib/oozie/

마지막으로 다음 명령을 실행하여 oozie 서버를 시작합니다.

[root@master tmp]# service oozie status
not running.

[root@master tmp]# service oozie start

[root@master tmp]# service oozie status
running

[root@master tmp]# oozie admin -oozie http://localhost:11000/oozie -status
System mode: NORMAL

즐겨 사용하는 브라우저를 사용하여 oozie UI를 열고 IP 주소를 지정하세요. 이 경우 내 IP는 192.168.1.129입니다.

http://192.168.1.129:11000

이제 이 UI가 보이면. 축하해요!! oozie를 성공적으로 구성했습니다.

이 절차는 RHEL/CentOS 6/5에서 성공적으로 테스트되었습니다. 앞으로의 기사에서는 oozie를 통해 hadoop 작업을 구성하고 예약하는 방법을 공유할 예정입니다. 더 많은 정보를 얻으려면 연락을 유지하고 피드백에 댓글을 남기는 것을 잊지 마세요.