- 프로젝트 규모가 커지면서 여러개의 MapReduce job을 연결하기 위해 만들어졌다.
- Job을 손쉽게 제어할 수 있어서 특정 Job을 시작하거나 종료, 일시정지 할 수 있다.
- 맵리듀스 작업 이외에도 사용할 수 있다.
- Control + Action 노드로 구성된다.
구성
- Master 1대 + Slave 3대 인 Hadoop
- Master Node에 설치
- Hadoop 2.9.2 / Oozie 4.3.1
설치
(1) 설치는 Build 이후 Server / Client 구축으로 나뉜다.
- 설치는 이 곳 에서 wget 으로 받아준다.
- 다운받은 파일을 적절한 위치로 옮긴다.
(2) 빌드를 위해 Maven을 설치한다.
(3) oozie/bin/mkdistro.sh 를 실행한다. 이 때에 테스트는 스킵할 수 있도록 한다.
mkdistro.sh -DskipTests
(4) 빌드에 시간이 꽤 걸리므로 기다려준다. 에러가 날 경우 메모리를 늘려 다시 실행해본다.
(5) Oozie 가 사용할 외부 DB에 oozie DATABASE 와 USER를 추가해준다. 나의 경우 HIVE를 설치할 때 사용한 mysql이 있어서 그 곳을 사용했다. 권한도 부여해주어야 한다.
create database oozie
grant all privileges on oozie.* to oozie
(6) 빌드 수행 후 /distro/target 에서 oozie-distro.tar.gz 파일이 생성된 것을 확인한다.
(7) tar -xvf oozie-4.3.1-distro.tar.gz 로 압축 해제 이후 적당한 위치로 옮겨준다.
(8) oozie-4.3.1-distro/oozie-4.3.1/conf/hadoop-conf/core-site.xml 에 다음 항목을 추가한다.
<!-- OOZIE -->
<property>
<name>hadoop.proxyuser.[OOZIE_SERVER_USER].hosts</name>
<value>[OOZIE_SERVER_HOSTNAME]</value>
</property>
<property>
<name>hadoop.proxyuser.[OOZIE_SERVER_USER].groups</name>
<value>[USER_GROUPS_THAT_ALLOW_IMPERSONATION]</value>
</property>
OOZIE_SERVER_USER : Oozie 서버 유저
OOZIE_SERVER_HOSTNAME : HOSTNAME
OOZIE_SERVER_USER.groups : 유저가 속한 그룹, 없을 시에는 공백
(9) Oozie 디렉터리 아래에 libext 디렉터리를 만든다.
(10) libext 디렉터리 아래에 /home/centos/hadoop-2.9.2/share/hadoop 폴더들 밑의 .jar 파일을 옮긴다.
전부 옮기지 않으면 에러나니까 꼭 옮기자.
(11) libext 아래에 ext-2.2 를 다운 받는다. > http://archive.cloudera.com/gplextras/misc/ext-2.2.zip
(12) 이후 oozie-setup.sh prepare-war 를 통해 oozie를 구성한다.
- 이 단계에서 jar 파일이 부족하거나 ext-2.2 가 없으면 war가 제대로 구성되지 않는다. 꼭 잘 확인한다.
(13) 외부 DB를 사용하므로 /home/centos/oozie-4.3.1-distro/oozie-4.3.1/conf 의 oozie-site.xml 을 작성해준다.
<configuration>
<property>
<name>oozie.db.schema.name</name>
<value>oozie</value>
<description>
Create Oozie DB
</description>
</property>
<property>
<name>oozie.service.JPAService.create.db.schema</name>
<value>true</value>
<description>
Create Oozie DB
</description>
</property>
<property>
<name>oozie.service.JPAService.jdbc.driver</name>
<value>com.mysql.jdbc.Driver</value>
<description>
JDBC Driver class
</description>
</property>
<property>
<name>oozie.service.JPAService.jdbc.url</name>
<value>jdbc:mysql://master:3306/oozie</value>
<description>
JDBC URL
</description>
</property>
<property>
<name>oozie.service.JPAService.jdbc.username</name>
<value>oozie</value>
<description>
DB user name
</description>
</property>
<property>
<name>oozie.service.JPAService.jdbc.password</name>
<value>oozie</value>
<description>
DB user password
</description>
</property>
</configuration>
(14) oozie-start.sh 로 oozie를 실행한다.
(15) oozie admin -oozie http://master:11000/oozie -status 로 status 를 확인한다.
(16) http://master:11000/oozie/ 에 접속하여 oozie가 잘 구동되고 있는지 확인한다.
'미분류 > Hadoop' 카테고리의 다른 글
NiFi 활용기 ) NiFi와 Oracle 연동하기 (0) | 2019.04.17 |
---|---|
Hadoop - Kafka 설치하기 (0) | 2019.04.11 |
Hadoop - Zookeeper 설치하기 (0) | 2019.04.10 |
Hadoop - Pig 설치하기 (0) | 2019.04.09 |
Hadoop 실습 - jar 파일을 만들어 hdfs 사용해보기 (0) | 2019.04.05 |