总览
如果某个接口请求报错,我们可以根据接口的返回加过中定位出现问题的微服务,一般情况下可以根据URL规范进行定位,Linkis接口中的URL都遵循着一定的设计规范,即/api/rest_j/v1/{applicationName}/.+的格式,通过applicationName可以定位应用名,部分应用本身是一个微服务,这时候应用名和微服务名相同,部分应用归属于某个微服务,此时应该通过应用名查找归属的微服务,去对应的微服务下查看log日志,下面给出微服务和应用名的对应关系。
二、社区issue专栏搜索关键词
在github社区首页,issue专栏留存了社区用户遇到的部分问题和解决方案,非常适合在遇到问题后快速寻找解决方案,在filter过滤器中搜索报错的关键词即可。
在Linkis文档中,专门整理出一篇包含安装部署过程中常见问题汇总以及解决方案的文档《 》
四、定位系统日志
通常出现错误的情况可以分为三种阶段:安装执行install.sh时报错、启动微服务报错、启动引擎报错。
执行install.sh时出现错误,通常有如下几种情况
环境变量缺失:例如java/python/Hadoop/hive/spark的环境在标准版下需要进行配置,在安装脚本的时候也会进行相应的校验操作,如果遇到这种问题一般都会有很明确的缺少环境变量的提示,例如异常-bash spark-submit:command not found等。
系统版本不匹配:目前Linkis支持Linux大部分版本,对cent os版本的兼容性最好,某些系统版本会存在命令不兼容的情况,例如ubantu中对yum的兼容较差,可能会导致安装部署是出现yum相关的报错,此外也建议尽量不要在windows下部署linkis,目前没有脚本完全兼容.bat命令。
配置项缺失:linkis1.0版本需要修改的配置文件有两个,linkis-env.sh和db.sh,
-
微服务执行期报错的情况比较复杂,遇到的情况也都因环境而异,但排查的方式基本一致,从对应的微服务报错目录出发,我们大致可以分为三种情况:
手动安装部署的微服务报错:该类微服务日志统一放在log/目录下,定位到微服务之后,进入对应目录查看即可。
对于安装部署过程中按照上述流程定位仍无法解决的问题,可以在我们的社区群中将报错信息发出来,为了方便社区伙伴和开发人员帮助解决,提升效率,建议您提问时,可以将问题现象、相关日志信息、已经排查过的地方一并发出,如果觉得可能是环境问题,则需要将对应的应用版本也一并列出,我们提供了微信群和QQ群两种线上交流渠道,具体联系方式可以在Linkis的github首页最下方看到。
六、定位源码远程debug
通常情况下,对源码远程debug是定位问题最有效的方式,但相对查阅文档来说,需要用户对源码结构有一定的了解,这里建议您在远程debug前查阅Linkis WIKI中的《 Linkis源码层级结构详解 》,对项目的源码结构进行初步的了解,有一定程度上的熟悉之后,可以参考WIKI中的《 》一文调试对应微服务下的代码。