1 Kylin运行的几个部分
1.1 Tomcat配置系统
大家知道, Kylin有一个比较友好的对外Web配置系统, 底层是基于tomcat的服务.
1.2 Shell程序
Kylin在运行一些与Hive, HBase的命令时,是使用shell命令直接执行的.
1.3 分布式计算
1.5之前, Kylin的底层系统使用的是MR; 1.5以后, Kylin支持了Spark等分布式计算系统.
2 调试方法
由于配置系统是比较核心的模块, 集中了大部分的Kylin的逻辑, 会对Cube进行各种设置, 对计算任务进行配置等, 所以本文主要讲解如何调试配置系统的源码。MR和Spark的调试,后面可以补上。
kylin系统的启动,是通过sh kylin.sh start命令执行的,那么调试开关的设置,主要是修改kylin.sh这个脚本.
2.1 添加调试开关
修改kylin.sh这个脚本:
hbase ${KYLIN_EXTRA_START_OPTS} \
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager \
-Dlog4j.configuration=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.rest.address=${kylin_rest_address} \
-Dspring.profiles.active=${spring_profile} \
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=
9001
\
org.apache.hadoop.util.RunJar ${tomcat_root}/bin/bootstrap.jar org.apache.catalina.startup.Bootstrap start >> ${KYLIN_HOME}/logs/kylin.out
2
>&
1
& echo $! > ${KYLIN_HOME}/pid &
|
添加倒数第二行的-Xdebug那行, 指明了调试端口为9001.
2.2 运行并连接
执行: sh kylin.sh start
可以在 /Users/cuiyang_mt/worktools/apache-kylin-1.5.4.1-bin/logs/kylin.out中看到进程正在监听9001:
Listening for transport dt_socket at address: 9001
然后就可以用eclipse或者IDEA等开发工具连接调试了:
![](http://wiki.sankuai.com/download/attachments/645820910/image2016-10-19%2016%3A47%3A26.png?version=1&modificationDate=1476866869000&api=v2)
调试界面如下:
![](http://wiki.sankuai.com/download/attachments/645820910/image2016-10-19%2016%3A48%3A3.png?version=1&modificationDate=1476866869000&api=v2)