Had the same problem recently Here is how you can get around it. I am using org.springframework.util.ReflectionUtils here just for convenience (to traverse class hierarchy if necessary), but you can just use raw reflection.
try { Field clientFinalizerField = ReflectionUtils.findField(fileSystem.getClass(), "clientFinalizer"); clientFinalizerField.setAccessible(true); Thread clientFinalizer = (Thread) clientFinalizerField.get(null); Runtime.getRuntime().removeShutdownHook(clientFinalizer); } catch (Exception e) { // handle } On Tue, Jan 21, 2014 at 5:36 AM, Lukas Kairies < lukas.xtree...@googlemail.com> wrote: > Hey, > > I use Hadoop with XtreemFS (with a corresponding FileSystem > implementation). The XtreemFS client uses several non-deamon Threads eg. > for communication. Therefore the shutdown hooks do not start after a > mapper/reducer is finished and the Child processes do not terminate. > > My question: > Is there any way to determine if the mapper/reducer child processes do not > need the file system any more? > > Best regards, > Lukas K >