datavane / tis

Support agile DataOps Based on Flink, DataX and Flink-CDC, Chunjun with Web-UI
https://tis.pub
Apache License 2.0
1.04k stars 221 forks source link

k8s部署后出现500错误 #369

Closed zzxVv closed 1 month ago

zzxVv commented 1 month ago

在使用K8s部署后,页面访问出现500错误,pod正常运行,配置为nodeport模式访问,这是日志具体报错信息 2024-10-12 16:56:24.898:WARN:oejs.HttpChannel:qtp561247961-14: /tjs/runtime/applist.ajax java.lang.NoClassDefFoundError: Could not initialize class com.qlangtech.tis.runtime.module.action.ChangeDomainAction at com.qlangtech.tis.manage.common.DefaultFilter.getRuntime(DefaultFilter.java:73) at com.qlangtech.tis.manage.common.DefaultFilter.doFilter(DefaultFilter.java:167) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1630) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:567) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:602) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1610) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1377) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:507) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1580) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1292) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:59) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) at org.eclipse.jetty.server.Server.handle(Server.java:501) at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383) at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:556) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:273) at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105) at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.produce(EatWhatYouKill.java:135) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806) at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938) at java.lang.Thread.run(Thread.java:748)

zzxVv commented 1 month ago

页面是可以正常进入的,菜单点不开 image

baisui1981 commented 1 month ago

您用的是哪个版本的TIS?你显示的异常栈没有显示全,能够提供完整的 异常栈?

zzxVv commented 1 month ago

版本为4.0,具体异常详见附件。 log.txt

baisui1981 commented 1 month ago

版本为4.0,具体异常详见附件。

是否能描述一下,你是如何启动TIS的步骤。

另外:你确定是使用,https://github.com/datavane/tis/blob/v4.0.0/tis-k8s/tis-console.yaml 这个文件来启动的吗?而不是使用master分支下的 tis-console.yaml 文件吗

zzxVv commented 1 month ago

我将csi部分修改为本地参数后执行kubectl apply -f ./tis-console.yaml进行运行的。第一次运行是可以正常运行的,后续我在delete deployment后,就出现了上述报错,之后我陆续把deployment、services、pv、pvc都delete了还是不行。这是我的详细tis-console.yaml文件,还请大佬看一下。 tis-console.txt

baisui1981 commented 1 month ago
 config.properties: |-
    project.name=TIS
    runtime=local

    tis.datasource.type=derby
    tis.datasource.dbname=tis_console_db

    assemble.host=tis-console-cluster-svc.default
    tis.host=tis-console-cluster-svc.default
    classpath.additional=/opt/app/tis-uber/WEB-INF/classes:/opt/app/tis-uber/WEB-INF/lib/*
    log.level=DEBUG

以上config.properties 中添加的配置项: classpath.additional=/opt/app/tis-uber/WEB-INF/classes:/opt/app/tis-uber/WEB-INF/lib/*是什么意思,动机是啥?

原因

以上配置文件中runtime 配置项,为啥要改成local ,之前你发的异常信息中有如下信息:

Caused by:
java.lang.IllegalArgumentException: key:local is invalid
    at com.qlangtech.tis.pubhook.common.RunEnvironment.getEnum(RunEnvironment.java:110)
    at com.qlangtech.tis.pubhook.common.RunEnvironment.getSysRuntime(RunEnvironment.java:59)
    at com.qlangtech.tis.manage.common.ManageUtils.isDaily(ManageUtils.java:87)
    at com.qlangtech.tis.runtime.module.action.ChangeDomainAction.<clinit>(ChangeDomainAction.java:56)

把它的值还原(runtime=daily)就好

zzxVv commented 1 month ago

classpath.additional=/opt/app/tis-uber/WEB-INF/classes:/opt/app/tis-uber/WEB-INF/lib/*为之前测试配置,添加与否对容器创建都没有影响,我将runtime改为daily后可以正常部署,初始化后均正常。谢谢大佬解答。不过还发现部分问题如下:

  1. 部署powerjob后,在页面点击datax执行器会出现socket time out报错,页面无法正常加载,但是不影响正常同步使用,详细报错栈为:java.lang.reflect.InvocationTargetException: null、java.lang.RuntimeException: IO Exception during hasNext method、java.net.SocketTimeoutException: timeout。
  2. 在tis数据库模式为MySQL时,删除tis容器,并将对应的mysql库删除再次新建数据库再部署tis容器后并不会进行初始化操作,导致库内表缺失前端功能异常。或许需要手动建表?
baisui1981 commented 1 month ago

classpath.additional=/opt/app/tis-uber/WEB-INF/classes:/opt/app/tis-uber/WEB-INF/lib/*为之前测试配置,添加与否对容器创建都没有影响,我将runtime改为daily后可以正常部署,初始化后均正常。谢谢大佬解答。不过还发现部分问题如下:

  1. 部署powerjob后,在页面点击datax执行器会出现socket time out报错,页面无法正常加载,但是不影响正常同步使用,详细报错栈为:java.lang.reflect.InvocationTargetException: null、java.lang.RuntimeException: IO Exception during hasNext method、java.net.SocketTimeoutException: timeout。
  2. 在tis数据库模式为MySQL时,删除tis容器,并将对应的mysql库删除再次新建数据库再部署tis容器后并不会进行初始化操作,导致库内表缺失前端功能异常。或许需要手动建表?

回复:

  1. 使用powerjob的方式来执行批量数据同步并不优雅,打算后期是要再改,可以尝试一下稍后发布的TIS 4.0.1 版本,新增量TIS和DS整合方案,就是将TIS的执行任务一键同步到DolphineScheduler中,在其平台上出发执行,这样更方便
  2. 这个应该你哪儿没有配置好,详细看一下K8S说明文档即可