상단

Server-based Workflow Engine인 Oozie를 정리 합니다.

 
 
 

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
 
 System.getProperty("oozie.action.output.properties");
 
 
 

참고 문헌


 
 

분류: BigData 
Workflow

최종 수정일: 2024-09-30 12:26:18

이전글 :
다음글 :