Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The cause is that the process fail to get the keystore password to read the keystore. When SSL is enabled and --ssl_private_key_password_cmd is set, impalad has to run the given command to retrive keystore password. In CDH cluster, the command launches a Java process and inherit the same JAVA_TOOL_OPTIONS as impala process. So this java process crash in binding the JMI port 9010. This port is already binded by impala process. So impala process crashes with the above error.

One workarround is to use random port in JMX by setting -Dcom.sun.management.jmxremote.port=0. To figure out which port is used finally, create a logging configuration for JMX. Let's say it's /tmp/logging.properties:

Code Block
handlers= java.util.logging.ConsoleHandler
.level= INFO
java.util.logging.ConsoleHandler.level = CONFIG
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
sun.management.jmxremote.level = CONFIG

Set JAVA_TOOL_OPTIONS as

Code Block
JAVA_TOOL_OPTIONS="-Djava.util.logging.config.file=/tmp/logging.properties -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=0 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=${SERVER_IP}"

...