복붙노트

[HADOOP] 스파크 - 자바 IOException : / tmp / blockmgr에 로컬 디렉토리를 만들지 못했습니다 *

HADOOP

스파크 - 자바 IOException : / tmp / blockmgr에 로컬 디렉토리를 만들지 못했습니다 *

나는 장기간 작동하는 Spark Job을 실행하려고 노력했다. 몇 시간의 실행 후, 다음과 같은 예외가 발생합니다.

Caused by: java.io.IOException: Failed to create local dir in /tmp/blockmgr-bb765fd4-361f-4ee4-a6ef-adc547d8d838/28 

다음을 확인하여 문제를 해결하려고했습니다.

해결법

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

    1.여러 노드로 작업한다고 가정하면 모든 노드가 스파크 작업 (마스터 / 드라이버 + 슬레이브 / 노드 / 작업자)에 참여하는지 확인해야합니다.

    여러 노드로 작업한다고 가정하면 모든 노드가 스파크 작업 (마스터 / 드라이버 + 슬레이브 / 노드 / 작업자)에 참여하는지 확인해야합니다.

    각 작업자 / 노드에 충분한 디스크 공간 (특히 check / tmp 폴더)이 있고 올바른 권한이 있는지 확인하십시오.

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

    2.tmp 캐시 파일의 백업본을 가져옵니다. tmp 디렉토리를 청소하고 쉘을 시작하십시오. 그것은 잘될 것이다. 같은 접근 방식이 나를 위해 일했습니다.

    tmp 캐시 파일의 백업본을 가져옵니다. tmp 디렉토리를 청소하고 쉘을 시작하십시오. 그것은 잘될 것이다. 같은 접근 방식이 나를 위해 일했습니다.

  3. ==============================

    3.편집 : 아래 답변은 결국 내 경우를 해결하지 못했습니다. 일부 하위 폴더에서 스파크 (또는 일부 종속성)를 만들 수 있었지만 아직 만들 수 없었기 때문입니다. 그러한 경로를 자주 만들어야하는 필요성 때문에 어떤 프로젝트도 실현 될 수 없습니다. 그래서 나는 Spark (나의 경우에는 PySpark)를 행정관으로 지명하여 사건을 해결했다. 결국 결국 허가 문제 일 것입니다.

    편집 : 아래 답변은 결국 내 경우를 해결하지 못했습니다. 일부 하위 폴더에서 스파크 (또는 일부 종속성)를 만들 수 있었지만 아직 만들 수 없었기 때문입니다. 그러한 경로를 자주 만들어야하는 필요성 때문에 어떤 프로젝트도 실현 될 수 없습니다. 그래서 나는 Spark (나의 경우에는 PySpark)를 행정관으로 지명하여 사건을 해결했다. 결국 결국 허가 문제 일 것입니다.

    원문 답변 : 나는 로컬 윈도우 머신 (클러스터가 아님)에서와 동일한 문제를 해결했다. 권한에 문제가 없었기 때문에 Spark에서 생성하지 못한 디렉토리를 만들었습니다. 즉, 다음 폴더를 로컬 사용자로 생성 했으므로 해당 폴더에 대한 권한을 변경할 필요가 없습니다.

    C:\Users\<username>\AppData\Local\Temp\blockmgr-97439a5f-45b0-4257-a773-2b7650d17142
    
  4. ==============================

    4.모든 권한 및 사용자 액세스를 확인한 후

    모든 권한 및 사용자 액세스를 확인한 후

    탈렌드 스튜디오에서 구성 요소를 빌드 할 때 동일한 문제가 발생하고 구성 탭의 스파크 스크래치 디렉토리 (임시 디렉토리)에 올바른 "/"를 제공하여 해결했습니다. Windows에서 jar를 빌드하고 Linux 클러스터에서 실행할 때 필요합니다.

  5. from https://stackoverflow.com/questions/41238121/spark-java-ioexception-failed-to-create-local-dir-in-tmp-blockmgr by cc-by-sa and MIT license