如何调试Kylin源码

来源:互联网 发布:祁东农村淘宝招募电话 编辑:程序博客网 时间:2024/06/05 22:45

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等开发工具连接调试了:

    

调试界面如下:

    

0 0
原创粉丝点击