Я пытаюсь понять, что значит
-XX: OnOutOfMemoryError = 'убить% p'
Имеется ввиду в следующей команде?
Я не уверен, что означает% p?
exec /bin/bash -c "LD_LIBRARY_PATH="/usr/hdp/current/hadoop-client/lib/native:/usr/hdp/current/hadoop-client/lib/native/Linux-amd64-64:$LD_LIBRARY_PATH" $JAVA_HOME/bin/java -server -Xmx5120m '-DENVIRONMENT=pt' -Djava.io.tmpdir=$PWD/tmp '-Dspark.history.ui.port=18081' '-Dspark.driver.port=39112' -Dspark.yarn.app.container.log.dir=/hadoop/hdfs/drive5/hadoop/yarn/log/application_1539650094881_0116/container_e111_1539650094881_0116_01_000024 -XX:OnOutOfMemoryError='kill %p' org.apache.spark.executor.CoarseGrainedExecutorBackend --driver-url spark://CoarseGrainedScheduler@192.168.1.13:39112 --executor-id 13 --hostname slave3.hadoop.tsl.com --cores 5 --app-id application_1539650094881_0116 --user-class-path file:$PWD/__app__.jar 1> /hadoop/hdfs/drive5/hadoop/yarn/log/application_1539650094881_0116/container_e111_1539650094881_0116_01_000024/stdout 2> /hadoop/hdfs/drive5/hadoop/yarn/log/application_1539650094881_0116/container_e111_1539650094881_0116_01_000024/stderr"
2 ответа
%p
- это заполнитель для PID.
JVM автоматически заменит это идентификатором процесса Java, запущенного в данный момент.
Эта опция сообщает JVM о самоуничтожении при возникновении OutOfMemoryError.
Этот аргумент выполняет команду ОС при возникновении ошибки OutOfMemory. Его можно использовать для отправки предупреждений, сбора диагностических данных или для перезапуска приложения.
JVM заменит %p
своим идентификатором процесса (PID). В конкретном случае это позволяет завершить приложение в OOM. Обычно это хорошая идея, потому что ошибка OutOfMemory может случайным образом прервать поток, и нет хорошего и надежного способа продолжить.
Начиная с версии 8u92, этот хак больше не нужен, так как здесь есть опция ExitOnOutOfMemory
: Java - завершение работы при ошибке нехватки памяти
Похожие вопросы
Новые вопросы
jvm
Виртуальная машина Java (JVM) позволяет ряду компьютерных программ и структур данных использовать модель виртуальной машины для выполнения других компьютерных программ и сценариев. Используйте этот тег для вопросов, касающихся инструментов, предоставляемых JVM, или того, как он работает в конкретном сценарии.