본문 바로가기

빅데이터/oozie41

[oozie] java.lang.NoSuchMethodError: org.apache.log4j.config.PropertySetter.activate 오류 해결 방법 oozie 5.2.1에서 서버를 실행 할 때 다음의 오류가 발생하였습니다. Exception in thread "main" java.lang.NoSuchMethodError: org.apache.log4j.config.PropertySetter.activate()V at org.apache.log4j.PropertyConfigurator.parseAppenderFilters(PropertyConfigurator.java:923) at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:845) at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigu.. 2023. 11. 13.
[oozie] 우지 워크플로우 작업이 PREP 상태에서 대기 하는 경우 우지 워크플로우 작업을 돌렸을 때 PREP 상태로 계속 대기하는 경우가 있습니다. 로거 설정이 INFO 상태로 우지를 실행하면 이 경우 로그가 출력되지 않아서 원인을 확인하기 힘든데 보통 리소스 매니저 설정이 제대로 되어 있지 않은 경우 문제가 발생합니다. 워크플로우의 resource-manager 설정을 확인 리소므 매니저가 정상적으로 동작하는지 확인 노드 개수, 동작 상태 등 yarn접근을 위한 port 가 정상적인지 확인. hadoop2는 8050 hadoop3는 8032가 기본 포트 2022. 8. 18.
[oozie] 우지 5.2.1 빌드 및 실행 우지 5.2.1 빌드 방법은 다음과 같습니다. 빌드 실행 우지를 실행하면 기본적으로는 더비 디비를 이용합니다. mysql 을 이용하기 위해서는 설정을 추가합니다. oozied.sh run oozied.sh start 설정 참고 사이트 https://oozie.apache.org/docs/5.2.1/DG_QuickStart.html#Building_Oozie Oozie – ::Go back to Oozie Documentation Index:: Oozie Quick Start These instructions install and run Oozie using an embedded Jetty server and an embedded Derby database. For detailed install and c.. 2022. 2. 2.
[oozie] 우지로 pyspark 실행 예제 우지를 이용하여 pyspark 를 실행 할 때는 다음과 같이 실행합니다. pi.py는 워크플로우 경로에 lib 폴더를 만들고 그 아래 있어야 합니다. oozie job -run -config job.porperties 2022. 2. 2.
[oozie] workflow, coordinator, bundle 예제 우지 워크플로우, 코디네이터, 번들 예제입니다. 실행을 위한 명령어는 다음과 같습니다. oozie job -run -Doozie.wf.application.path=hdfs:///workflow_example oozie job -run -Doozie.coord.application.path=hdfs:///workflow_example oozie job -run -Doozie.bundle.application.path=hdfs:///workflow_example 2022. 1. 30.
[oozie] 우지에서 스파크 액션에서 Missing py4j and/or pyspark zip files. 오류 처리 우지 스파크 액션에서 pyspark를 실행할 때 Missing py4j and/or pyspark zip files. Please add them to the lib folder or to the Spark sharelib 오류가 발생하는 경우가 있습니다. 해결 방법 우지의 sharelib 에 파이썬 라이브러리가 없어서 발생하기 때문에 우지의 spark sharelib에 스파크 파이썬 라이브러리를 추가하면 됩니다. # 스파크 홈 $ cd ${SPARK_HOME}/python/lib # 조회 $ ls -alh total 636 drwxr-xr-x 2 deploy deploy 4096 May 30 2020 ./ drwxr-xr-x 7 deploy deploy 4096 May 30 2020 ../ -rw-r-.. 2022. 1. 26.
[oozie] 우지 스파크 액션에서 리소스 매니저를 찾지 못하는 경우(Retrying connect to server: 0.0.0.0/0.0.0.0:8032.) 우지 스파크 액션에 리소스 매니저를 찾지 못하는 경우는 스파크의 리소스 매니저 기본 설정값을 추가하면 됩니다. 오류 내용 Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 0 times(s). spark-defaults.conf 설정 추가 spark-defaults.conf에 다음 내용을 추가합니다. spark.hadoop.yarn.resourcemanager.address host-name:8050 2022. 1. 26.
[oozie] 우지 스파크 잡에서 java.lang.RuntimeException: java.lang.ClassNotFoundException: Class org.apache.oozie.action.hadoop.SparkMain not found 오류 처리 우지 스파크 액션에서 SparkMain not found 오류가 발생할때는 oozie.use.system.libpath 를 true로 설정하면 된다. Failing Oozie Launcher, java.lang.ClassNotFoundException: Class org.apache.oozie.action.hadoop.SparkMain not found java.lang.RuntimeException: java.lang.ClassNotFoundException: Class org.apache.oozie.action.hadoop.SparkMain not found at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2425) at org.. 2022. 1. 25.
[oozie] Caused by: java.lang.ClassNotFoundException: Class org.apache.oozie.action.hadoop.HiveMain not found 오류 확인 문제 우지에서 하이브를 이용할 때 다음의 오류가 발생하는 경우가 있습니다. 이 경우는 우지의 쉐어 라이브러리(sharelib)설정을 이용하지 않을 때 로컬에서 라이브러리를 확인하지 못할 때 발생할 수 있습니다. Caused by: java.lang.ClassNotFoundException: Class org.apache.oozie.action.hadoop.HiveMain not found at org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:2273) at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2367) ... 13 more 해결 방법 우지 작업 실.. 2020. 10. 28.
[oozie][yarn] 우지에서 작업 실행 시 Cannot initialize Cluster. 오류 수정 방법 우지 4.3.0을 설정하는 중 Cannot initialize Cluster 오류가 발생하였습니다. 오류 우지 작업 중 클러스터를 초기화하지 못한다는 오류가 발생하였습니다. 오류 내용은 mapreduce.framework.name=yarn으로 설정되어 있기 때문에 고가용성(HA) 구성된 리소스 매니저의 주소를 확인하지 못하는 것으로 생각하였습니다. Caused by: java.io.IOException: Cannot initialize Cluster. Please check your configuration for mapreduce.framework.name and the correspond server addresses. at org.apache.hadoop.mapreduce.Cluster.initia.. 2020. 9. 1.
[oozie] 우지에서 replaceAll 함수를 이용하여 문자열 치환하기 우지에서 기본 EL 함수를 이용하여 문자열을 치환(replace)하는 방법을 알아보겠습니다. 문자열을 치환하는 함수는 replaceAll입니다. 이 함수와 정규식을 이용하여 문자열을 치환할 수 있습니다. replaceAll(String src, String regex, String replacement) 정규식을 이용할 수 있기 때문에 대소문자 구분없이 변경을 위해서 (?i)를 넣어주면 됩니다. mapred.job.queue.name ${replaceAll(param, 'AA', 'aa')} ${replaceAll(param, '(?i)AA', 'aa') eq 'aa') Basic_EL_Constants 2020. 3. 18.
[oozie] E0701: XML schema error, cvc-complex-type.2.4.c 오류 해결 방법 우지에서 워크플로우를 실행할 때 다음의 오류가 발생하는 경우가 있습니다. Because E0701 : E0701: XML schema error, cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'hive'. 원인 이는 워크플로우 XML이 스키마에 맞게 정상작으로 생성되지 않은 경우에 발생합니다. 우지 버전과 xml의 네임스페이스에 선언한 액션의 버전에 따라 사용할 수 있는 엘리먼트가 정해져 있기 때문에 우지의 버전에 따라 스키마를 잘 선택해야 합니다. 워크플로우에 적용한 스키마 버전과 현재 작성한 XML의 내용을 확인하여 수정해야 합니다. 2019. 12. 11.
[oozie] Error: E0701:XML schema error, Content is not allowed in prolog. 오류 해결 방법 우지에서 워크플로우를 추가하고 실행하려고 할 때 다음의 오류가 발생하는 경우가 있습니다. Error: E0701:XML schema error, Content is not allowed in prolog. 원인 SAXParser에서 발생하는 이 오류는 보통 XML을 읽지 못하는 경우에 발생합니다. XML을 저장할 때 BOM이 들어가 있는 경우 발생하기도 하지만 우지에서는 workflow의 실행경로를 잘 못 전달하는 경우에 발생할 수 있습니다. 저는 oozie.wf.application.path에 오타가 있어서 워크플로우의 주소가 달라서 이 오류가 발생하였습니다. 해결방법 따라서 path를 입력할 때 경로를 정확하게 입력해야 합니다. hadoop fs -ls 명령으로 해당 경로의 워크플로우를 확인할 수 있.. 2019. 12. 11.
[oozie] 워크플로우 실행 중 Error: E0701:XML schema error, Content is not allowed in prolog. 오류 해결 방법 우지에서 워크플로우를 실행 하려고 할 때 다음과 같은 오류가 발생하는 경우가 있습니다. Error: E0701:XML schema error, Content is not allowed in prolog. 원인 XML 워크플로우를 읽지 못하는 경우 이 오류가 발생합니다. 보통 워크플로우가 형식에 맞지 않거나(XML 파싱 불가, BOM 형식), 오타가 있는 경우에 발생할 수 있습니다. XML 문법을 체크하기 위해서 xmllint 명령을 이용하여 문법오류를 확인해 보는 것이 좋습니다. 저는 워크플로우의 위치를 지정하는 oozie.wf.application.path에 오타가 있어서 워크플로우를 읽을 수 가 없어서 오류가 발생하였습니다. 해결방법 작업 경로를 정확하게 입력하여 주면 됩니다. ls명령으로 해당 경로.. 2019. 12. 6.
[oozie] Oozie 5.0 특징 2018년 4월 발표된 우지 5.0의 특징에 대해서 알아보겠습니다. 기존 4.3에서 사용하던 워크플로우와 기능을 그대로 이용할 수 있어서 특별히 수정해야 할 점은 없습니다. 특징 우지 런처가 맵리듀스 매퍼에서 YARN 애플리케이션 마스터로 변경 YARN 애플리케이션 타입에 Oozie Launcher로 나옴 우지 웹서버가 톰캣6에서 Jetty9으로 변경 웹 UI를 신규로 작성 ExtJS를 제외하고 새로 작성 서드파티 라이브러리 갱신 JDK8 지원 DB 쿼리 성능 향상을 위해서 인덱스 추가 보안취약점 수정(CVE-2017-15712 ) 참고 아파치 재단 블로그 - 바로가기 우지 5.0 - 홈페이지 2019. 11. 5.
[oozie] Error: E0307 : E0307: Runtime error [App directory [null] does not exist and app definition cannot be created because of missing config value [oozie.jobs.api.generated.xml]] 오류 EMR에서 사용하는 우지 5.1에서 다음과 같은 오류가 발생하였습니다. Error: E0307 : E0307: Runtime error [App directory [null] does not exist and app definition cannot be created because of missing config value [oozie.jobs.api.generated.xml]] 원인 OOZIE-3386 우지 5.1.0에서 발생하고 패치 되었으나 EMR에서는 발생 해결방법 HDFS에서 올려놓은 workflow.xml의 이름을 파라미터로 전달 $ oozie job -config coordinator.properties -run -Doozie.jobs.api.generated.xml=workflow.xml 2019. 11. 4.
[oozie] 우지 액션의 log4j 설정 추가 우지 5.0에서 log4j 설정을 읽지 못해서 발생하는 오류는 우지의 쉐어라이브러리에 log4j 설정을 복사해서 적용할 수 있습니다. SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/mnt/yarn/filecache/56/log4j-slf4j-impl-2.6.2.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/usr/lib/hadoop/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.sl.. 2019. 11. 4.
[oozie][hive][log4j] ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console. 오류 해결 방법 우지를 이용해서 액션을 실행할 때 다음과 같이 log4j 설정 정보를 찾지 못해서 기본설정으로 작업하여 에러로그만 출력하는 경우가 있습니다. 이때는 로그설정 파일을 우지 액션에서 함께 전달하면 됩니다. SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/mnt/yarn/filecache/56/log4j-slf4j-impl-2.6.2.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/usr/lib/hadoop/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLogger.. 2019. 10. 31.
[oozie][EMR] EMR Oozie 실행시 java.lang.ClassNotFoundException: Class com.amazon.ws.emr.hadoop.fs.EmrFileSystem not found 오류 수정 EMR의 우지(oozie)를 이용하면서 다음과 같이 com.amazon.ws.emr.hadoop.fs.EmrFileSystem 클래스를 찾지 못한다는 오류를 발견하면 클래스패스에 라이브러리를 가지고 있는 jar 파일의 위치를 추가해주면 됩니다. Caused by: java.lang.ClassNotFoundException: Class com.amazon.ws.emr.hadoop.fs.EmrFileSystem not found at org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:2273) at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2367) ... .. 2019. 10. 30.
[oozie][slf4j] SLF4J: Class path contains multiple SLF4J bindings. 오류 SLF4J를 이용하는 여러 가지 라이브러리를 함께 이용할 때 다음과 같은 오류가 발생할 수 있습니다. 해결 방법은 중복된 라이브러리를 정리해 주는 것입니다. 설치되어 있는 상태라면 아래의 경우 중복된 2개의 라이브러리중 하나를 삭제(rm) 또는 이동(mv) 예를 들면 rm /usr/lib/oozie/lib/slf4j-simple-1.6.6.jar 명령으로 jar 파일 삭제 빌드가 가능한 상황이라면 메이븐이나 그래들의 명령을 이용해 중복된 라이브러리는 빼고 로드하도록 설정 SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/usr/lib/oozie/lib/slf4j-log4j12-1.6.6.jar!/or.. 2019. 10. 25.
[oozie] 우지 액션(action) 체크 설정 변경하기 우지를 이용하여 작업을 처리하는 중 fork를 이용하여 한번에 여러개의 액션(action)을 실행하면 클러스터 자원의 여유가 있어도, 우지가 10개의 액션만 동시에 처리(RUNNING 상태)하고 나머지는 대기 상태(PREP 상태)로 남아서 작업 속도를 증가하기 위해서 우지 액션 관련 설정을 확인해 보았습니다. 우지 액션 관련 설정은 세가지입니다. 설정 기본값 비고 oozie.service.ActionCheckerService.action.check.interval 60 작업의 동작 상황을 체크하는 기간. 60초 마다 반복 oozie.service.ActionCheckerService.action.check.delay 600 작업을 시작하고 동작체크를 시작하는 지연시간. 작업 시작후 600초(10분)뒤에 .. 2019. 4. 19.
[oozie] 우지 워크플로우(workflow) 기본 스펙 및 실행 우지 워크플로우의 기본 스펙과 실행 방법에 대해서 알아보겠습니다. [워크플로우 기본 스펙] 우지 워크플로우는 우지가 실제로 실행하는 작업의 순서를 담고 있습니다. XML 스키마에 맞춰서 작성하면 됩니다. https://oozie.apache.org/docs/4.2.0/WorkflowFunctionalSpec.html#Appendix_A_Oozie_XML-Schema Oozie - ::Go back to Oozie Documentation Index:: Oozie Specification, a Hadoop Workflow System (v3.1) The goal of this document is to define a workflow engine system specialized in coordinatin.. 2019. 4. 19.
[oozie] 코디네이터(coordinator)의 일자 변환 EL 함수 사용법 코디네이터에서 워크플로우로 넘겨주는 프로퍼티 중에서 일자(DateTime)를 동적으로 변화 시켜주는 함수의 사용법에 대해서 알아보겠습니다. 일자를 동적으로 변환시켜주는 함수는 다음과 같습니다. coord:dateOffset(String baseDate, int instance, String timeUnit)주어진 timeUnit 과 instance 만큼의 시간을 변경baseDate: 2019-01-01, timeUnit: DAY, instance: 1 이면 2019-01-02 반환 coord:dateTzOffset(String baseDate, String timezone)주어진 timezone 값의 시간으로 변경 coord:formatTime(String ts, String format)주어진 form.. 2019. 3. 19.
[oozie] 우지의 HDFS EL 함수 알아보기 우지에는 워크플로우를 작성할 때 도움을 제공하는 기본 EL 상수와 함수가 있습니다. 우지 EL 함수 종류 Basic EL ConstantsKB, MB, GB 등 사이즈 계산을 위한 상수 Basic EL Functionsconcat, trim 등 문자열 관련 기본 함수와 wf:actionData(String actionName) 같은 워크플로우 관련 함수 Workflow EL Functionswf:id() 등 워크플로우의 정보 확인을 위한 함수 Hadoop EL Constants맵리듀스 관련 상수 정보 Hadoop EL Functions하둡 카운터 정보 Hadoop Jobs EL Function하둡 잡의 정보 HDFS EL FunctionsHDFS 파일의 존재여부, 사이즈 확인 정보 HCatalog EL .. 2019. 2. 13.
[oozie] 우지 잡의 프로퍼티 업데이트 우지는 실행중에 잡에 등록된 컨피그 프로퍼티 값을 수정할 수 있습니다. 1. 우지에 등록된 설정값을 xml 로 받고2. xml 을 수정후3. xml 을 우지 설정값으로 update 하면 됩니다. 1. 설정값 로컬 다운로드 oozie job -configcontent OOZIE-COORD-ID >> OOZIE-COORD-ID.xml 2. 수정되는 상태 확인(실제로 변경하지는 않음) oozie job -oozie http://localhost:11000/oozie -config OOZIE-COORD-ID.xml -update OOZIE-COORD-ID -dryrun 3. 설정값 변경 oozie job -oozie http://localhost:11000/oozie -config OOZIE-COORD-ID.x.. 2018. 12. 14.
[oozie] 우지 작업 리런 커맨드 우지에서 작업중 코디네이터, 워크플로우에서 오류가 발생하면 작업을 새로 걸지 않고, 리런 커맨드를 이용하여 재작업 할 수 있습니다. 코디네이터 리런$oozie job -rerun [-nocleanup] [-refresh] [-action 1, 3-4, 7-40] (-action or -date is required to rerun.) [-date 2009-01-01T01:00Z::2009-05-31T23:59Z, 2009-11-10T01:00Z, 2009-12-31T22:00Z] (if neither -action nor -date is given, the exception will be thrown.) # 3번 액션 재작업 oozie job -rerun [coord-id] -action 3 # 3~10.. 2018. 11. 16.
[oozie] 우지 명령어 실행중 발생하는 Oozie URL 설정 오류 우지의 cli 명령어를 실행할 때 OOZIE_URL이 설정되어 있지 않고, 프로퍼티로 -oozie 값을 전달하지 않으면 다음의 오류가 발생한다. java.lang.IllegalArgumentException: Oozie URL is not available neither in command option or in the environment at org.apache.oozie.cli.OozieCLI.getOozieUrl(OozieCLI.java:711) at org.apache.oozie.cli.OozieCLI.createXOozieClient(OozieCLI.java:911) at org.apache.oozie.cli.OozieCLI.jobsCommand(OozieCLI.java:1544) at org.. 2018. 7. 30.
[oozie][error] 우지의 shell 액션에서 python 실행시 : No such file or directory 오류 처리 보통 윈도우에서 개발하고, 리눅스에서 우지를 실행하게 되는데윈도우 파일 포맷으로 저장한 파일을 리눅스에서 실행하려고 하면 아래와 같이 파일을 찾지 못하는 오류가 발생한다. /usr/bin/env: python : No such file or directory Failing Oozie Launcher, Main class [org.apache.oozie.action.hadoop.ShellMain], exit code [1] 또 파일 포맷의 이상일 때 다음과 같은 오류가 발생할 수도 있다. 윈도우의 줄바꿈은 CR+LF(/r/n)이고, 유닉스의 줄바꿈은 LF(/n)라서 오류가 발생한다. /bin/sh^M: bad interpreter: No such file or directory 이럴때 파일을 vi 로 열어.. 2018. 7. 10.
[oozie] 우지런처 메모리 설정 우지의 액션을 실행하는 우지 런처도 MR 잡으로 실행된다. 우지 런처의 메모리를 설정하는 옵션은 다음을 설정하면 된다. oozie.launcher.mapreduce.map.memory.mb=768oozie.launcher.mapreduce.map.java.opts=-Xmx512moozie.launcher.yarn.app.mapreduce.am.resource.mb=1024oozie.launcher.yarn.app.mapreduce.am.command-opts=-Xmx768m http://www.openkb.info/2016/07/memory-allocation-for-oozie-launcher-job.html 2018. 4. 19.
[oozie] 코디네이터, 워크플로우 재작업(rerun)을 위한 cli 커맨드 코디네이터 재작업 우지의 코디네이터와 워크플로우는 에러가 발생여 KILL, FAIL 상태이거나, 어떤이유로 재작업이 필요할 때 rerun 명령어를 이용하여 재작업을 할 수 있다. 이때 코디네이터는 다음과 같이 코디네이터 아이디와 액션 번호를 이용하여 재작업을 할 수 있다. $oozie job -rerun [-nocleanup] [-refresh] [-action 1, 3-4, 7-40] (-action or -date is required to rerun.) [-date 2009-01-01T01:00Z::2009-05-31T23:59Z, 2009-11-10T01:00Z, 2009-12-31T22:00Z] (if neither -action nor -date is given, the exception wi.. 2018. 2. 6.