- Oozie 개요
- CentOS에서 Oozie 설치
- 사전 준비 사항
- 설치
- Hadoop 설정
- Oozie 매뉴얼
- 참고 문헌
Server-based Workflow Engine인 Oozie를 정리 합니다.
홈페이지 : http://oozie.apache.org/
라이선스 : Apache 2.0
플랫폼 : Java
Oozie 개요
Workflow와 Scheduler 기능 제공
CentOS에서 Oozie 설치
사전 준비 사항
Hive 0.11.0
Pig 0.11.1
Hadoop 1.1.2 (HDFS, MapReduce)
Maven 3.0.5
Ant 1.7.1
Java 1.7.0_19
cd /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/lib
cp /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/lib/tools.jar .
cd /usr/lib/jvm/jre/bin
ln -s /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/bin/javadoc javadoc
CentOS 6.4, 64 bits
Oozie에서 사용할 database와 DB user를 생성 합니다.
Database : oozie, User : oozie
MySQL connector를 다운로드 합니다.
wget http://cdn.mysql.com/Downloads/Connector-J/mysql-connector-java-5.1.25.tar.gz
tar zxvf mysql-connector-java-5.1.25.tar.gz
//--- mysql-connector-java-5.1.25/mysql-connector-java-5.1.25-bin.jar 파일을 사용 합니다.
Ext JS를 다운로드 합니다.
wget http://dev.sencha.com/deploy/ext-2.2.1.zip
unzip ext-2.2.1.zip -d ext-2.2.1
mv ext-2.2.1 /appl/extjs
// wget http://cdn.sencha.com/ext/gpl/ext-4.2.1-gpl.zip
// unzip ext-4.2.1-gpl.zip
설치
다운로드 사이트에 oozie를 다운로드한 후 maven을 사용하여 설치를 합니다.
wget http://www.us.apache.org/dist/oozie/3.3.2/oozie-3.3.2.tar.gz
tar zxvf ../oozie-3.3.2.tar.gz
cd oozie-3.3.2
./bin/mkdistro.sh -DskipTests
cd distro/target
tar zxvf ../oozie-3.3.2-distro.tar.gz
mv oozie-3.3.2 /appl/oozie
cd /appl
chown -R root:root oozie
oozie.war 파일 생성
export HADOOP_HOME=/appl/hadoop
cd /appl/oozie
//--- Hadoop 1.x 버전을 사용할 경우 0.20.2 를 지정하여 설정 하세요.
./bin/oozie-setup.sh
-hadoop 0.20.2 $HADOOP_HOME
-extjs /appl/extjs
-jars "/cloudnas/install/mysql-connector-java-5.1.25-bin.jar:$HADOOP_HOME/lib/commons-configuration-1.6.jar:$HADOOP_HOME/lib/jackson-core-asl-1.8.8.jar:$HADOOP_HOME/lib/jackson-mapper-asl-1.8.8.jar"
Database 접속 정보 설정
vi conf/oozie-site.xml
oozie.service.JPAService.create.db.schema : true
oozie.service.JPAService.jdbc.driver : org.gjt.mm.mysql.Driver
oozie.service.JPAService.jdbc.url : jdbc:mysql://localhost:3306/oozie?useUnicode=true&characterEncoding=UTF-8
oozie.service.JPAService.jdbc.username : ???
oozie.service.JPAService.jdbc.password : ???
oozie.db.schema.name : oozie
oozie.service.JPAService.pool.max.active.conn : 10
//--- JDBC Driver 복사
cp /cloudnas/install/mysql-connector-java-5.1.25-bin.jar /appl/oozie/libtools
//--- Database Tables 생성
./bin/ooziedb.sh create -sqlfile oozie.sql -run
Apache Tomcat UTF-8 설정
vi /appl/oozie/oozie-server/conf/server.xml
[Tomcat에서 UTF-8 설정](문자셋과 인코딩.md#Tomcat에서 UTF-8 설정.md)
서비스 확인
./bin/oozied.sh start
ps -ef | grep oozie //--- 서비스가 살아 있는지 확인
./bin/oozie admin -oozie http://localhost:11000/oozie -status
//--- "System mode: NORMAL" 메시지 확인
http://localhost:11000/oozie 사이트로 접속하여 확인 합니다.
방화벽에서 11000/tcp 포트를 오픈 하여야 접속할 수 있습니다.
vi .bashrc
export OOZIE_HOME=/appl/oozie
export PATH=$PATH:$OOZIE_HOME/bin
export OOZIE_URL=http://localhost:11000/oozie
Hadoop 설정
vi /appl/hadoop/conf/hdfs-site.xml
oozie를 실행하는 Linux User가 oozie일 경우
root 사용자로 실행할 경우에는 아래에서 oozie 대신에 root를 기입 하세요.
hadoop.proxyuser.oozie.hosts
*
hadoop.proxyuser.oozie.groups
*
MapReduce에서 사용할 라이브러리를 HDFS에 저장
tar zxvf /appl/oozie/oozie-sharelib-3.3.2.tar.gz
start-all.sh //--- Hadoop가 동작하고 있지 않으면 Hadoop을 기동 합니다.
hadoop dfs -mkdir share
Sample로 동작 확인
tar zxvf /appl/oozie/oozie-examples.tar.gz
vi examples/apps/streaming/job.properties
nameNode=hdfs://localhost:9000 //--- /appl/hadoop/conf/core-site.xml 참조
jobTracker=localhost:9001 //--- /appl/hadoop/conf/mapred-site.xml 참조
hadoop dfs -put examples/input-data examples/input-data
hadoop dfs -put examples/apps/streaming/workflow.xml examples/apps/streaming/workflow.xml
hadoop dfs -put examples/apps/streaming/job.properties examples/apps/streaming/job.properties
oozie job -run -config examples/apps/streaming/job.properties
oozie job -info xxxxx
hadoop dfs -ls examples/output-data/streaming
Oozie 매뉴얼
Oozie Action
Shell
JavaAction
DistCp
MapReduce
Pig
Hive
Oozie Job 작성
Oozie Sample 보기
cd /appl/oozie
tar zxvf oozie-examples.tar.gz
//--- examples 폴더에서 Sample 확인 가능
vi /appl/oozie/product/workflow001/job.properties
여기서 선언한 변수는 ${var}로 참조할 수 있습니다.
nameNode=hdfs://cloud001.cloudserver.com:9000
jobTracker=cloud001.cloudserver.com:9001
queueName=default
oozie.libpath=/appl/oozie/product/workflow001/lib
oozie.wf.application.path=${nameNode}/appl/oozie/product/workflow/main
vi workflow.xml
~
~
Map/Reduce failed, error message[${wf:errorMessage(wf:lastErrorNode())}](${wf:errorMessage(wf:lastErrorNode())}.md)
Oozie Job 실행
oozie job -run -config /appl/oozie/product/workflow001/job.properties
oozie job -info xxxxx
http://localhost:11000/oozie 사이트에서 작업 진행 사항 확인
Java에서 Oozie 속성 접근
System.getProperty("oozie.action.output.properties");
참고 문헌
설치