一直都想在本地調試kylin的源代碼。找了好久的命令收藏一下:
1. 在kylin.sh加入
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=9001 \
### 或者下面的這個也可以,端口號自定義
-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=9001 \
2. 加入的地方
hbase ${KYLIN_EXTRA_START_OPTS} \
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager \
-Dlog4j.configuration=file:${KYLIN_HOME}/conf/kylin-server-log4j.properties \
-Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true \
-Dorg.apache.catalina.connector.CoyoteAdapter.ALLOW_BACKSLASH=true \
-Djava.endorsed.dirs=${tomcat_root}/endorsed \
-Dcatalina.base=${tomcat_root} \
-Dcatalina.home=${tomcat_root} \
-Djava.io.tmpdir=${tomcat_root}/temp \
-Dkylin.hive.dependency=${hive_dependency} \
-Dkylin.hbase.dependency=${hbase_dependency} \
-Dkylin.kafka.dependency=${kafka_dependency} \
-Dkylin.spark.dependency=${spark_dependency} \
-Dkylin.hadoop.conf.dir=${kylin_hadoop_conf_dir} \
-Dspring.profiles.active=${spring_profile} \
org.apache.hadoop.util.RunJar ${tomcat_root}/bin/bootstrap.jar
## 我加入的地方在這裏
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=9001 \
org.apache.catalina.startup.Bootstrap start >> ${KYLIN_HOME}/logs/kylin.out 2>&1 & echo $! > ${KYLIN_HOME}/pid &
3. 測試
通過本地源代碼(要保證版本統一), 通過idea設置remote ip, host就可以隨意調試了。