[HADOOP] 작업 폴더로 Oozie s3
HADOOP작업 폴더로 Oozie s3
Oozie는 workflow.xml이 s3에서 제공 될 때 다음 오류로 인해 실패하지만 HDFS에서 제공 한 동일한 workflow.xml도 실패합니다. 이전 버전의 oozie와 동일한 기능을 수행했지만 4.3 버전의 oozie에서 변경된 사항이 있습니까?
약 :
Job.properties
nameNode=hdfs://ambari-master-1a.xdata.com:8020
jobTracker=ambari-master-2a.xdata.com:8050
queue=default
#OOZIE job details
basepath=s3a://mybucket/test/oozie
oozie.use.system.libpath=true
oozie.wf.application.path=${basepath}/jobs/test-hive
# (Job.properties에서이 변경 사항과 함께 작동)
기본 경로 = hdfs : //ambari-master-1a.xdata.com : 8020 / test / oozie
workflow.xml
<workflow-app xmlns="uri:oozie:workflow:0.5" name="test-hive">
<start to="hive-query"/>
<action name="hive-query" retry-max="2" retry-interval="10">
<hive xmlns="uri:oozie:hive-action:0.2">
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<script>test_hive.sql</script>
</hive>
<ok to="end"/>
<error to="kill"/>
</action>
<kill name="kill">
<message>job failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
</kill>
<end name="end"/>
</workflow-app>
오류:
org.apache.oozie.action.ActionExecutorException: UnsupportedOperationException: Accessing local file system is not allowed
at org.apache.oozie.action.ActionExecutor.convertException(ActionExecutor.java:446)
at org.apache.oozie.action.hadoop.JavaActionExecutor.createLauncherConf(JavaActionExecutor.java:1100)
at org.apache.oozie.action.hadoop.JavaActionExecutor.submitLauncher(JavaActionExecutor.java:1214)
at org.apache.oozie.action.hadoop.JavaActionExecutor.start(JavaActionExecutor.java:1502)
at org.apache.oozie.command.wf.ActionStartXCommand.execute(ActionStartXCommand.java:241)
at org.apache.oozie.command.wf.ActionStartXCommand.execute(ActionStartXCommand.java:68)
at org.apache.oozie.command.XCommand.call(XCommand.java:287)
at org.apache.oozie.service.CallableQueueService$CompositeCallable.call(CallableQueueService.java:332)
at org.apache.oozie.service.CallableQueueService$CompositeCallable.call(CallableQueueService.java:261)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at org.apache.oozie.service.CallableQueueService$CallableWrapper.run(CallableQueueService.java:179)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.UnsupportedOperationException: Accessing local file system is not allowed
at org.apache.hadoop.fs.RawLocalFileSystem.initialize(RawLocalFileSystem.java:48)
at org.apache.hadoop.fs.LocalFileSystem.initialize(LocalFileSystem.java:47)
at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:3303)
at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:124)
at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:3352)
at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:3320)
at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:479)
at org.apache.hadoop.fs.FileSystem.getLocal(FileSystem.java:435)
at org.apache.hadoop.fs.LocalDirAllocator$AllocatorPerContext.confChanged(LocalDirAllocator.java:301)
at org.apache.hadoop.fs.LocalDirAllocator$AllocatorPerContext.getLocalPathForWrite(LocalDirAllocator.java:378)
at org.apache.hadoop.fs.LocalDirAllocator$AllocatorPerContext.createTmpFileForWrite(LocalDirAllocator.java:461)
at org.apache.hadoop.fs.LocalDirAllocator.createTmpFileForWrite(LocalDirAllocator.java:200)
at org.apache.hadoop.fs.s3a.S3AFileSystem.createTmpFileForWrite(S3AFileSystem.java:572)
at org.apache.hadoop.fs.s3a.S3ADataBlocks$DiskBlockFactory.create(S3ADataBlocks.java:811)
at org.apache.hadoop.fs.s3a.S3ABlockOutputStream.createBlockIfNeeded(S3ABlockOutputStream.java:190)
at org.apache.hadoop.fs.s3a.S3ABlockOutputStream.<init>(S3ABlockOutputStream.java:168)
at org.apache.hadoop.fs.s3a.S3AFileSystem.create(S3AFileSystem.java:778)
at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:1118)
at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:1098)
at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:987)
at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:975)
at org.apache.oozie.action.hadoop.LauncherMapperHelper.setupLauncherInfo(LauncherMapperHelper.java:156)
at org.apache.oozie.action.hadoop.JavaActionExecutor.createLauncherConf(JavaActionExecutor.java:1040)
해결법
-
==============================
1.이것은 Oozie가 CVE-2017-15712로부터 보호 된 방법으로 인해 발생합니다. Oozie의 RawLocalFileSystem 더미 구현을 제거하면이 작업이 실행됩니다. 다시 컴파일하지 않으려면 배포본에서 클래스 파일을 찾아 삭제할 수 있습니다. Oozie 서버는 CVE-2017-15712에 취약 할 것입니다.
이것은 Oozie가 CVE-2017-15712로부터 보호 된 방법으로 인해 발생합니다. Oozie의 RawLocalFileSystem 더미 구현을 제거하면이 작업이 실행됩니다. 다시 컴파일하지 않으려면 배포본에서 클래스 파일을 찾아 삭제할 수 있습니다. Oozie 서버는 CVE-2017-15712에 취약 할 것입니다.
from https://stackoverflow.com/questions/54945345/oozie-s3-as-job-folder by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] java.lang.OutOfMemoryError : 100 바이트의 메모리를 확보 할 수 없습니다. 0을가집니다. (0) | 2019.06.22 |
---|---|
[HADOOP] hadoop 2.4.1에서 namenode를 시작하는 중 오류가 발생했습니다. (0) | 2019.06.22 |
[HADOOP] Hadoop 작업 : "execvp : permission denied" (0) | 2019.06.22 |
[HADOOP] Spark에서 NLineInputFormat이 작동하지 않습니다. (0) | 2019.06.22 |
[HADOOP] HDFS 복제 - 데이터 저장 (0) | 2019.06.22 |