什么是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:
请注意:
- Host为Engine实际启动的IP
- Use module classpath需为实际需要DEBUG的模块