什么是Engine服务?

Engine服务是指由EngineManager启动的,用于执行用户Job请求的服务。

这些服务由于是由EngineManager自动启动,所以用户一般无法设置远程DEBUG的参数。

在测试环境下,用户可以通过设置成测试模式,来开启某个Engine的远程DEBUG。

1. 进入linkis-ujes-*-enginemanager/conf目录,执行命令:

2. 给Linkis提交任务,让Linkis启动新的engine来执行用户的任务请求

3. 进入linkis-ujes-*-enginemanager/logs,打开linkis.log,查看最新的engine启动脚本日志,如下例子:

上面的日志出现了远程调试端口,即10092:

    4. 打开Intellij IDEA,进入Linkis工程,如下图打开DEBUG:

    请注意:

    • Host为Engine实际启动的IP
    • Port为步骤3获取的DEBUG端口
    • Use module classpath需为实际需要DEBUG的模块

    5. 打断点,开始DEBUG。

    2. DEBUG非Engine服务

    DEBUG非Engine服务比较简单,用户进入某个Linkis服务,修改start-*.sh脚本,加上远程调试即可。

    1. 进入linkis-database/bin目录,执行命令:

    先加上如下一行shell脚本:

    请注意,这里的address为远程调试端口,且必须是没有被占用的端口

    2. 接下来修改Java启动命令,加上远程调试的命令$DEBUG_OPTS,如下:

    3. 重启database服务

    4. 打开Intellij IDEA,进入Linkis工程,如下图打开DEBUG:

    DEBUG截图

    请注意:

    • Host为Engine实际启动的IP
    • Use module classpath需为实际需要DEBUG的模块

    5. 打断点,开始DEBUG。