我的应用程序运行在apachehama之上,apachehama是用java实现的分布式计算框架。
多个服务器可以向多台机器发出数据拉取请求。我在hadoop中使用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)
我使用randomaccessfile类来处理从几gb到几十gb的非常大的文件。错误消息表示文件处理程序被中断关闭。但它并没有确切说明原因。
应用程序代码没有中断特定线程的任何代码行。我怀疑jvm或os正在调用interuppt。
jvm(或os)什么时候可以异常关闭文件处理程序?
暂无答案!
目前还没有任何答案,快来回答吧!