Moja aplikacja Java działa na odwzorowaniu i tworzy procesy potomne za pomocą Qubole API. Aplikacja przechowuje child qubole queryIDs. Muszę przechwycić sygnał zabicia i wyłączyć procesy potomne przed wyjściem. hadoop job -kill jobId
i yarn application -kill applicationId
komendy zabijają zadania w sposób SIGKILL, nie wiem jak przechwycić wyłączenie. Czy jest możliwe przechwycenie zabicia pracy w jakiś sposób lub skonfigurowanie hasoop, aby dać szansę aplikacji na zamknięcie z wdziękiem?Jak zabezpieczyć pracę hadoop z wdziękiem/przechwycić `hadoop job -kill`
Aplikacja pomyślnie przechwytuje zamykanie przy użyciu ShutdownHook, gdy działa lokalnie, a nie w kontenerze mapperów i może zabić procesy potomne.
Proszę zasugerować, jak przechwycić zamknięcie podczas pracy w programie odwzorowującym, czy może robię coś nie tak?
Jeśli nie wykonano ShutdownHooks, oczekuje się, że aplikacja zostanie zabita przy pomocy SIGKILL, (patrz: https://stackoverflow.com/questions/2541597/how-to-gracefully-handle-the-sigkill-signal- in-java). Nie wierzę, że możesz "obsłużyć" SIGKILL, jak wspomniano w linku, możesz monitorować stan pracy. O ile mi wiadomo, żadne narzędzia nie pozwalają na jak najlepsze "zamknięcie" dotychczasowych miejsc pracy. – Adonis