복붙노트

[HADOOP] 구글의 Dataproc에서의 스파크로 인해 java.io.FileNotFoundException 실패 : / 하둡 / 실 / NM-로컬 디렉토리 / usercache / 루트 / 앱 캐시 /

HADOOP

구글의 Dataproc에서의 스파크로 인해 java.io.FileNotFoundException 실패 : / 하둡 / 실 / NM-로컬 디렉토리 / usercache / 루트 / 앱 캐시 /

나는 달 동안 모두 제플린과 Dataproc에서 콘솔을 통해 통해 Dataproc에 스파크 / 하둡을 사용하고 있지만, 최근에 나는 다음과 같은 오류가 발생했습니다.

Caused by: java.io.FileNotFoundException: /hadoop/yarn/nm-local-dir/usercache/root/appcache/application_1530998908050_0001/blockmgr-9d6a2308-0d52-40f5-8ef3-0abce2083a9c/21/temp_shuffle_3f65e1ca-ba48-4cb0-a2ae-7a81dcdcf466 (No such file or directory)
at java.io.FileOutputStream.open0(Native Method)
at java.io.FileOutputStream.open(FileOutputStream.java:270)
at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
at org.apache.spark.storage.DiskBlockObjectWriter.initialize(DiskBlockObjectWriter.scala:103)
at org.apache.spark.storage.DiskBlockObjectWriter.open(DiskBlockObjectWriter.scala:116)
at org.apache.spark.storage.DiskBlockObjectWriter.write(DiskBlockObjectWriter.scala:237)
at org.apache.spark.shuffle.sort.BypassMergeSortShuffleWriter.write(BypassMergeSortShuffleWriter.java:151)
at org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:96)
at org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:53)
at org.apache.spark.scheduler.Task.run(Task.scala:108)
at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:338)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)

첫째, 제플린 노트북에 이러한 유형의 오류를 가지고하고 제플린의 문제라고 생각. 이 오류는하지만, 무작위로 발생하는 것 같습니다. 나는 그것은 스파크 노동자 중 하나가 해당 경로에 쓸 수없는 함께 할 수있는 뭔가가 생각한다. 그래서, 내가 봤 각 스파크 작업자 / 하둡 / 실 / NM-로컬 디렉토리 / usercache에서 파일을 삭제 / 각 작업자의 사용 가능한 디스크 공간이 있는지 확인하기 위해 제안되었다. 이렇게하면, 나는 아직도 가끔이 오류를했다. 나는 또한 Dataproc에서의 스파크 작업을 실행이 유사한 오류가 발생했습니다. 나는 Dataproc에서 이미지 버전 1.2입니다.

감사

Peeranat F.

해결법

  1. ==============================

    1.승인. 우리는 GCP에 동일한 문제에 직면하고 이것에 대한 이유는 자원 선점이다.

    승인. 우리는 GCP에 동일한 문제에 직면하고 이것에 대한 이유는 자원 선점이다.

    GCP에서 자원 선점이 두 가지 전략에 따라 수행 할 수 있습니다,

    이 설정은이 공유되고 특별히 경우, 클러스터의 비용과 자원 활용을 최적화하기 위해 관리자는 / dev 작전 사람에 의해 GCP에서 이루어집니다.

    당신이 스택 추적하고 나를는 노드 선점한다는 것입니다 알려줍니다. 몇 번 선점받을 노드가 모두 함께 실패 앱 원인 드라이버 노드입니다 때문에이 오류가 무작위로 발생합니다.

    당신은 당신의 GCP 콘솔에서 선점있는 노드를 볼 수 있습니다.

  2. ==============================

    2.다음은 다른 원인이 될 수 있습니다 :

    다음은 다른 원인이 될 수 있습니다 :

    그래서 나는 가능한 해결 방법으로 다음과 같은 조치를 요약 :

    당신이 메모리 문제에 직면하면 노동자와 마스터의 메모리를 증가 1.-,이 폐기됩니다.

    Dataproc에서의 이미지 버전을 변경 2 .-.

    특히 맵리 듀스와 스파크에 대한 조정 클러스터를 클러스터 속성을 변경 3.-.

  3. from https://stackoverflow.com/questions/51229580/spark-on-googles-dataproc-failed-due-to-java-io-filenotfoundexception-hadoop by cc-by-sa and MIT license