복붙노트

[HADOOP] 때 JVM (또는 OS) 비정상적으로 파일 핸들러를 닫을 수 있습니다?

HADOOP

때 JVM (또는 OS) 비정상적으로 파일 핸들러를 닫을 수 있습니다?

내 응용 프로그램은 자바로 구현 컴퓨팅 프레임 워크를 배포 아파치 하마의 상단에 실행됩니다.

여러 서버는 여러 컴퓨터에 요청을 당겨 데이터를 발행 할 수 있습니다. 나는 서버 / 클라이언트 모델을 만들기 위해 하둡에서 RPC를 사용합니다.

컴퓨터가 요청을 당기는 데이터를 수신하면, 다음 파일을 열고

나는 다음과 같은 오류가 발생했습니다 :

ERROR org.apache.hama.XXX:java.nio.channels.ClosedByInterruptException
    at java.nio.channels.spi.AbstractInterruptibleChannel.end(AbstractInterruptibleChannel.java:202)
    at sun.nio.ch.FileChannelImpl.size(FileChannelImpl.java:315)
    at org.apache.hama.FileHandler.openHandler(XXX.java:235)
    ...
    at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:508)
    at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:959)

나는 GB의 수십에 몇 GB에서 매우 큰 파일을 처리하기 위해 RandomAccessFile의 클래스를 사용합니다. 오류 메시지는 파일 핸들러가 중단에 의해 폐쇄했다. 하지만 이유를 정확하게 말하지 않는다.

응용 프로그램 코드는 특정 스레드를 인터럽트 코드의 라인을 가지고 있지 않습니다. 나는 JVM 또는 OS가 interuppt 호출하는 의심.

때 JVM (또는 OS) 비정상적으로 파일 핸들러를 닫을 수 있습니다?

해결법

    from https://stackoverflow.com/questions/41254637/when-can-jvm-or-os-close-the-file-handler-abnormally by cc-by-sa and MIT license