diff --git a/bin/hbase b/bin/hbase index 835e98d..39521f8 100755 --- a/bin/hbase +++ b/bin/hbase @@ -323,9 +323,14 @@ if [ "x$JAVA_LIBRARY_PATH" != "x" ]; then HBASE_OPTS="$HBASE_OPTS -Djava.library.path=$JAVA_LIBRARY_PATH" fi +# What to do if we OOME +if [ "$HBASE_ON_OOME" = "" ]; then + HBASE_ON_OOME='-XX:OnOutOfMemoryError="kill -9 %p"' +fi + # Exec unless HBASE_NOEXEC is set. if [ "${HBASE_NOEXEC}" != "" ]; then - "$JAVA" $JAVA_HEAP_MAX $HBASE_OPTS -classpath "$CLASSPATH" $CLASS "$@" + "$JAVA" "${HBASE_ON_OOME}" $JAVA_HEAP_MAX $HBASE_OPTS -classpath "$CLASSPATH" $CLASS "$@" else - exec "$JAVA" $JAVA_HEAP_MAX $HBASE_OPTS -classpath "$CLASSPATH" $CLASS "$@" + exec "$JAVA" "${HBASE_ON_OOME}" $JAVA_HEAP_MAX $HBASE_OPTS -classpath "$CLASSPATH" $CLASS "$@" fi diff --git a/conf/hbase-env.sh b/conf/hbase-env.sh index 34e179a..f47b18f 100644 --- a/conf/hbase-env.sh +++ b/conf/hbase-env.sh @@ -43,6 +43,8 @@ export HBASE_OPTS="-XX:+UseConcMarkSweepGC" # export HBASE_OPTS="$HBASE_OPTS -XX:MaxDirectMemorySize=" # Set hbase.offheapcachesize in hbase-site.xml +# What to do on OOME. Passed to the jvm on start. +# export HBASE_ON_OOME='-XX:OnOutOfMemoryError="kill -9 %p"' # Uncomment and adjust to enable JMX exporting # See jmxremote.password and jmxremote.access in $JRE_HOME/lib/management to configure remote password access.