복붙노트

[HADOOP] 프로그램이 중단 될 때 스파크 병합 파일을 푼다

HADOOP

프로그램이 중단 될 때 스파크 병합 파일을 푼다

스칼라 / 스파크에서 나는 DataFrame을 사용하고 및 사용하여 하나의 파일로 쓰기

val dataFrame = rdd.toDF()
dataFrame.coalesce(1).write.mode(SaveMode.Overwrite).parquet(filePath)

이 잘 작동합니다. 하지만이 파일을 병합 및 폴더가 하둡 파일 시스템에없는 동안 것을, 콘솔과 하둡의 ls 명령을 사용하여 알아 냈어.

당신은 하둡 FS -ls HDFS를 입력 할 때 : // 경로를 그런 파일이나 디렉토리가 없습니다. 병합이 완료되면 경로는 다시이 또한 파일 병합되었다.

병합 파일을 삭제하고 새로 만들 필요가 있기 때문에이 문제가 발생할 수있다?!

여기에 문제는 지금 : 파일이 파일 시스템에없는 동안 내가 프로세스 / 응용 프로그램을 죽일 때, 전체 파일이 삭제됩니다. 따라서 시스템의 실패는 파일을 파괴하는 것입니다.

어떻게 파일 손실을 방지하는 아이디어가 있습니까? 나는 스파크 / 하둡이의 관심을 거라 생각 했어요.

감사합니다, 알렉스

해결법

    from https://stackoverflow.com/questions/33364089/spark-coalesce-looses-file-when-program-is-aborted by cc-by-sa and MIT license