티스토리 뷰
빅데이터/oozie
[oozie][EMR] EMR Oozie 실행시 java.lang.ClassNotFoundException: Class com.amazon.ws.emr.hadoop.fs.EmrFileSystem not found 오류 수정
hs_seo 2019. 10. 30. 16:53EMR의 우지(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)
... 28 more
EmrFileSystem 이란?
EmrFileSystem
은 EMR에서 S3에 접근하여 파일을 읽고, 쓰게해주는 HDFS 구현체 입니다. S3를 HDFS와 동일한 명령으로 접근할 수 있습니다. EMR와 연계하여 사용하는 EC2 인스턴스에서 S3에 접근하려고 필요로 합니다.
해결방법 - 클래스패스(classpath) 지정
해당 파일시스템은 emrfs-hadoop-assembly-2.30.0.jar
파일에 존재하고, EMR은 /usr/share/aws/emr/emrfs/lib/
아래 해당 파일이 존재합니다. 이 위치를 실행하려고 하는 서비스에 추가해주면 됩니다.
$ java -cp /usr/share/aws/emr/emrfs/lib/*
# EMR oozie의 경우 /usr/lib/oozie/bin 아래 oozie-jetty-server.sh 파일 수정
$ vi oozie-jetty-server.sh
# 다음과 같이 옵션에 추가
jetty_opts="${jetty_opts} -cp ${JETTY_DIR}/*:${JETTY_DIR}/dependency/*:${BASEDIR}/lib/*:${BASEDIR}/libtools/*:${JETTY_DIR}:/usr/share/aws/emr/emrfs/lib/*"
# 수정후 우지 서비스 정지후 재시작
$ sudo oozie stop
$ sudo oozie start
EmrFs 라이브러리 위치
해당위치에는 다음과 같은 파일이 존재합니다. 다른 EC2 서버에 우지를 설치할 경우에는 필요한 파일을 복사해서 사용해도 됩니다.
$ ls -al /usr/share/aws/emr/emrfs/lib/
total 20572
drwxr-xr-x 2 root root 4096 Oct 29 02:15 .
drwxr-xr-x 7 root root 4096 Oct 29 02:15 ..
-rw-r--r-- 1 root root 4467 Jan 10 2019 aopalliance-1.0.jar
-rw-r--r-- 1 root root 605519 Jan 10 2019 bcpkix-jdk15on-1.51.jar
-rw-r--r-- 1 root root 2842667 Jan 10 2019 bcprov-jdk15on-1.51.jar
-rw-r--r-- 1 root root 16926807 Jan 10 2019 emrfs-hadoop-assembly-2.30.0.jar
-rw-r--r-- 1 root root 565410 Jan 10 2019 ion-java-1.0.2.jar
-rw-r--r-- 1 root root 2497 Jan 10 2019 javax.inject-1.jar
-rw-r--r-- 1 root root 16431 Jan 10 2019 jcl-over-slf4j-1.7.21.jar
-rw-r--r-- 1 root root 26880 Jan 10 2019 jmespath-java-1.11.393.jar
-rw-r--r-- 1 root root 41071 Jan 10 2019 slf4j-api-1.7.21.jar
반응형
'빅데이터 > oozie' 카테고리의 다른 글
[oozie] 우지 액션의 log4j 설정 추가 (0) | 2019.11.04 |
---|---|
[oozie][hive][log4j] ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console. 오류 해결 방법 (0) | 2019.10.31 |
[oozie][slf4j] SLF4J: Class path contains multiple SLF4J bindings. 오류 (0) | 2019.10.25 |
[oozie] 우지 액션(action) 체크 설정 변경하기 (0) | 2019.04.19 |
[oozie] 우지 워크플로우(workflow) 기본 스펙 및 실행 (0) | 2019.04.19 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 하이브
- SQL
- 다이나믹
- S3
- 정올
- Tez
- SPARK
- airflow
- hbase
- 백준
- Hadoop
- error
- oozie
- mysql
- ubuntu
- 알고리즘
- AWS
- 하둡
- nodejs
- HDFS
- bash
- HIVE
- build
- emr
- 오류
- yarn
- Linux
- Python
- java
- 파이썬
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함