Debugging Kyuubi#

You can use the Java Debug Wire Protocol to debug Kyuubi with your favorite IDE tool, e.g. IntelliJ IDEA.

Debugging Server#

We can configure the JDWP agent in KYUUBI_JAVA_OPTS for debugging.

For example,

KYUUBI_JAVA_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005 \
bin/kyuubi start

In the IDE, you set the corresponding parameters(host&port) in debug configurations, for example,

../_images/idea_debug.png

Debugging Engine#

We can configure the Kyuubi properties to enable debugging engine.

Trino Engine#

kyuubi.engine.trino.java.options -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005

Hive Engine#

kyuubi.engine.hive.java.options -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005

Debugging Apps#

Spark Engine#

  • Spark Driver

spark.driver.extraJavaOptions   -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005
  • Spark Executor

spark.executor.extraJavaOptions   -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005

Flink Engine#

  • Flink Processes

env.java.opts   -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005
  • Flink JobManager

env.java.opts.jobmanager   -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005
  • Flink TaskManager

env.java.opts.taskmanager   -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005
  • Flink HistoryServer

env.java.opts.historyserver   -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005
  • Flink Client

env.java.opts.client   -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005