首先找到单机安装linkis的教程,可以看到第一次先执行install.sh
我们就从这个install.sh作为突破口,看看安装的时候,做了什么?
看到install.sh的前面就是设置了一些变量和环境检测,然后就执行了common.sh了,所以先暂时暂停到install.sh的48行,先去看一下common.sh这个脚本做了什么?
分析完成了common.sh,我们接着回到install.sh,因为common.sh其实并没有执行什么关键的命令,只是定义了几个函数,方便install.sh可以直接调用。
到此处,安装脚本的解读完毕。
接下来看看启动脚本。
可以看到启动的脚本是linkis-start-all.sh脚本,接下来我们分析一下这个linkis-start-all.sh脚本在启动的工程中分别启动了哪些类?
可以看到,总共启动了6个类,顺序如下:
1:mg-eureka
2:mg-gateway
3: ps-publicservice
4: cg-linkismanager
5: cg-entrance
6: cg-engineconnmanager
然后我们需要找到这6个类具体的类名称是啥。这个去linkis-daemon.sh里去找。
核心的映射关系就是这里了。
然后我们把上面的类映射到执行脚本里去:如下图所示:
- mg-eureka------> sbin/ext/linkis-mg-eureka
- mg-gateway ---------> sbin/ext/linkis- mg-gateway
- ps-publicservice --------> sbin/ext/linkis- ps-publicservice
- cg-linkismanager ----------> sbin/ext/linkis- cg-linkismanager
- cg-entrance -------------> sbin/ext/linkis- cg-entrance
- cg-engineconnmanager ------> sbin/ext/linkis- cg-engineconnmanager
所以接下来就很明白了,就是去看下面6个启动文件:
- sbin/ext/linkis-mg-eureka
- sbin/ext/linkis-mg-gateway
- sbin/ext/linkis-ps-publicservice
- sbin/ext/linkis-cg-linkismanager
- sbin/ext/linkis-cg-entrance
- sbin/ext/linkis-cg-engineconnmanager
我们先看看第一个文件:sbin/ext/linkis-mg-eureka
可以找到核心的启动类就是 org.apache.linkis.eureka.SpringCloudEurekaApplication
接着看第二个文件: sbin/ext/linkis-mg-gateway
可以找到核心的启动类就是 org.apache.linkis.gateway.springcloud.LinkisGatewayApplication
接着看第三个文件: sbin/ext/ linkis- ps-publicservice
可以找到核心的启动类就是 org.apache.linkis.filesystem.LinkisPublicServiceApp
接着看第四个文件: sbin/ext/ linkis- cg-linkismanager
可以找到核心的启动类就是 org.apache.linkis.manager.am.LinkisManagerApplication
接着看第五个文件: sbin/ext/ linkis- cg-entrance
可以找到核心的启动类就是 org.apache.linkis.entrance.LinkisEntranceApplication
接着看第六个文件: sbin/ext/ linkis- cg-engineconnmanager
可以找到核心的启动类就是 org.apache.linkis.ecm.server.LinkisECMApplication
所以总结一下就是,按照顺序依次启动如下6个类:
- org.apache.linkis.eureka.SpringCloudEurekaApplication
- org.apache.linkis.gateway.springcloud.LinkisGatewayApplication
- org.apache.linkis.filesystem.LinkisPublicServiceApp
- org.apache.linkis.manager.am.LinkisManagerApplication
- org.apache.linkis.entrance.LinkisEntranceApplication
- org.apache.linkis.ecm.server.LinkisECMApplication
至此,我们就分析完成了Linkis整个启动的脚本,大家抓紧先把上面的几个进程先启动起来吧。下一篇,我们将要介绍一下如何用调用Linkis的Restful接口来提交一个请求给Linkis,并跟踪Linkis内部脚本的执行流程。