You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@linkis.apache.org by binbincheng <74...@qq.com.INVALID> on 2023/02/17 09:05:05 UTC

[DISCUSS] Discussion about linkis calling seaTunnel related issues

Wechat group "Apache Linkis community Development group " chat records are as follows:


South of:
I operate seaTunnel with the codename linkis. The results of the query have been found in the log. But the follow-up still reported an error. Codename also shows failure. What is the reason?




South of:
Exception caught (might be ok if at shutdown) java.lang.IllegalStateException: Shutdown in progress
&nbsp; &nbsp; &nbsp; &nbsp; at java.lang.ApplicationShutdownHooks.remove(ApplicationShutdownHooks.java:82) ~[?:1.8.0_65]
&nbsp; &nbsp; &nbsp; &nbsp; at java.lang.Runtime.removeShutdownHook(Runtime.java:239) ~[?:1.8.0_65]
&nbsp; &nbsp; &nbsp; &nbsp; at com.netflix.util.concurrent.ShutdownEnabledTimer.cancel(ShutdownEnabledTimer.java:70) ~[netflix-commons-util-0.3.0.jar:0.3.0]
&nbsp; &nbsp; &nbsp; &nbsp; at com.netflix.loadbalancer.BaseLoadBalancer.cancelPingTask(BaseLoadBalancer.java:632) ~[ribbon-loadbalancer-2.3.0.jar:2.3.0]
&nbsp; &nbsp; &nbsp; &nbsp; at com.netflix.loadbalancer.BaseLoadBalancer.shutdown(BaseLoadBalancer.java:883) ~[ribbon-loadbalancer-2.3.0.jar:2.3.0]
&nbsp; &nbsp; &nbsp; &nbsp; at com.netflix.loadbalancer.DynamicServerListLoadBalancer.shutdown(DynamicServerListLoadBalancer.java:285) ~[ribbon-loadbalancer-2.3.0.jar:2.3.0]
&nbsp; &nbsp; &nbsp; &nbsp; at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_65]
&nbsp; &nbsp; &nbsp; &nbsp; at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_65]
&nbsp; &nbsp; &nbsp; &nbsp; at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_65]
&nbsp; &nbsp; &nbsp; &nbsp; at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_65]
&nbsp; &nbsp; &nbsp; &nbsp; at org.springframework.beans.factory.support.DisposableBeanAdapter.invokeCustomDestroyMethod(DisposableBeanAdapter.java:286) ~[spring-beans-5.2.22.RELEASE.jar:5.2.22.RELEASE]
&nbsp; &nbsp; &nbsp; &nbsp; at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:220) ~[spring-beans-5.2.22.RELEASE.jar:5.2.22.RELEASE]
&nbsp; &nbsp; &nbsp; &nbsp; at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:587) ~[spring-beans-5.2.22.RELEASE.jar:5.2.22.RELEASE]
&nbsp; &nbsp; &nbsp; &nbsp; at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:559) ~[spring-beans-5.2.22.RELEASE.jar:5.2.22.RELEASE]
&nbsp; &nbsp; &nbsp; &nbsp; at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultLis




Then this is the follow-up error report.


QiaoMu:
I am also your phenomenon.


South of:
Did you solve it? @QiaoMu


QiaoMu:
No, try debugging, is it successful again?


QiaoMu:
how many times do you try


peacewong@WDS:
@LiMeng Help me to see


South of:
are all Failed


LiMeng:
Come to a full log file
South of:
&nbsp;The stderr file is empty, @Dlimeng_李梦 brother, what is the reason?


Li Meng:
The last is to close the process log, it doesn't matter, there is a real problem calling the api status without flipping


South of:
That is, after I called the Api, it was actually successful. But the status hasn't changed, has it?



South of:
package org.apache.linkis.computation.client;
import org.apache.linkis.common.conf.Configuration;
import org.apache.linkis.computation.client.once.simple.SubmittableSimpleOnceJob;
import org.apache.linkis.computation.client.utils.LabelKeyUtils;
public class SeatunnelOnceJobTest {
&nbsp; &nbsp; public static void main(String[] args) {
&nbsp; &nbsp; &nbsp; &nbsp; LinkisJobClient.config().setDefaultServerUrl("http://ip:9001");
&nbsp; &nbsp; &nbsp; &nbsp; String code =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "\n"
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; + "env {\n"
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; + " spark.app.name = \"SeaTunnel\"\n"
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; + "spark.executor.instances = 2\n"
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; + "spark.executor.cores = 1\n"
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; + " spark.executor.memory = \"1g\"\n"
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; + "}\n"
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; + "\n"
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; + "source {\n"
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; + "Fake {\n"
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; + " result_table_name = \"my_dataset\"\n"
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; + " }\n"
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; + "\n"
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; + "}\n"
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; + "\n"
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; + "transform {\n"
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; + "}\n"
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; + "\n"
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; + "sink {\n"
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; + " Console {}\n"
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; + "}";
&nbsp; &nbsp; &nbsp; &nbsp; SubmittableSimpleOnceJob onceJob =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; LinkisJobClient.once()
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .simple()
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .builder()
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .setCreateService("seatunnel-Test")
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .setMaxSubmitTime(300000)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .addLabel(LabelKeyUtils.ENGINE_TYPE_LABEL_KEY(), "seatunnel-2.1.2")
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .addLabel(LabelKeyUtils.USER_CREATOR_LABEL_KEY(), "hadoop-seatunnel")
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .addLabel(LabelKeyUtils.ENGINE_CONN_MODE_LABEL_KEY(), "once")
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .addStartupParam(Configuration.IS_TEST_MODE().key(), true)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .addExecuteUser("hadoop")
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .addJobContent("runType", "sspark")
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .addJobContent("code", code)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .addJobContent("master", "local[4]")
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .addJobContent("deploy-mode", "client")
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .addSource("jobName", "OnceJobTest")
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .build();
&nbsp; &nbsp; &nbsp; &nbsp; onceJob. submit();
&nbsp; &nbsp; &nbsp; &nbsp; System.out.println(onceJob.getId());
&nbsp; &nbsp; &nbsp; &nbsp; onceJob. waitForCompleted();
&nbsp; &nbsp; &nbsp; &nbsp; System.out.println(onceJob.getStatus());
&nbsp; &nbsp; &nbsp; &nbsp; LinkisJobMetrics jobMetrics = onceJob. getJobMetrics();
&nbsp; &nbsp; &nbsp; &nbsp; System.out.println(jobMetrics.getMetrics());
&nbsp; &nbsp; }
}




South of:
I just use this official code. Do I need to change the source code of linkis?


peacewong@WDS:
Are you using release 1.3.1 of the eatunnel plugin


South of:
The source code of 1.3.1 is compiled by myself. The official website did not see the 1.3.1 material


Xia Chen:
https://linkis.apache.org/zh-CN/blog/2022/04/15/how-to-download-engineconn-plugin


South of:
@Xia Chen Thank you, I will try it tomorrow, and the latest one I saw when I deployed it is 1.3.0

----------------------
微信群“Apache Linkis社区开发群”聊天记录
如下面所述:



之南:
我用代码 linkis 操作 seaTunnel。日志中已经查询出结果了。但是后续还是报错了。代码也显示Failed。是什么原因呢?





之南:
Exception caught (might be ok if at shutdown) java.lang.IllegalStateException: Shutdown in progress
&nbsp; &nbsp; &nbsp; &nbsp; at java.lang.ApplicationShutdownHooks.remove(ApplicationShutdownHooks.java:82) ~[?:1.8.0_65]
&nbsp; &nbsp; &nbsp; &nbsp; at java.lang.Runtime.removeShutdownHook(Runtime.java:239) ~[?:1.8.0_65]
&nbsp; &nbsp; &nbsp; &nbsp; at com.netflix.util.concurrent.ShutdownEnabledTimer.cancel(ShutdownEnabledTimer.java:70) ~[netflix-commons-util-0.3.0.jar:0.3.0]
&nbsp; &nbsp; &nbsp; &nbsp; at com.netflix.loadbalancer.BaseLoadBalancer.cancelPingTask(BaseLoadBalancer.java:632) ~[ribbon-loadbalancer-2.3.0.jar:2.3.0]
&nbsp; &nbsp; &nbsp; &nbsp; at com.netflix.loadbalancer.BaseLoadBalancer.shutdown(BaseLoadBalancer.java:883) ~[ribbon-loadbalancer-2.3.0.jar:2.3.0]
&nbsp; &nbsp; &nbsp; &nbsp; at com.netflix.loadbalancer.DynamicServerListLoadBalancer.shutdown(DynamicServerListLoadBalancer.java:285) ~[ribbon-loadbalancer-2.3.0.jar:2.3.0]
&nbsp; &nbsp; &nbsp; &nbsp; at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_65]
&nbsp; &nbsp; &nbsp; &nbsp; at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_65]
&nbsp; &nbsp; &nbsp; &nbsp; at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_65]
&nbsp; &nbsp; &nbsp; &nbsp; at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_65]
&nbsp; &nbsp; &nbsp; &nbsp; at org.springframework.beans.factory.support.DisposableBeanAdapter.invokeCustomDestroyMethod(DisposableBeanAdapter.java:286) ~[spring-beans-5.2.22.RELEASE.jar:5.2.22.RELEASE]
&nbsp; &nbsp; &nbsp; &nbsp; at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:220) ~[spring-beans-5.2.22.RELEASE.jar:5.2.22.RELEASE]
&nbsp; &nbsp; &nbsp; &nbsp; at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:587) ~[spring-beans-5.2.22.RELEASE.jar:5.2.22.RELEASE]
&nbsp; &nbsp; &nbsp; &nbsp; at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:559) ~[spring-beans-5.2.22.RELEASE.jar:5.2.22.RELEASE]
&nbsp; &nbsp; &nbsp; &nbsp; at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultLis


然后这个是后续的报错。


乔木:
我也是你这个现象。


之南:
你解决了吗? @乔木


乔木:
没有,你debug试试 是不是结果又是成功


乔木:
多试几次呢


peacewong@WDS:
@李孟 帮忙看看


之南:
都是Failed


李孟:
来个全的日志文件


之南:
&nbsp;stderr 文件为空,@Dlimeng_李孟 哥,是什么原因呢


李孟:
最后是关闭进程日志,没关系,真正有问题调用api状态没翻转


之南:
就是我调用Api之后,其实已经成功了。但是状态没改是吗?


之南:
package org.apache.linkis.computation.client;
import org.apache.linkis.common.conf.Configuration;
import org.apache.linkis.computation.client.once.simple.SubmittableSimpleOnceJob;
import org.apache.linkis.computation.client.utils.LabelKeyUtils;
public class SeatunnelOnceJobTest {
&nbsp; &nbsp; public static void main(String[] args) {
&nbsp; &nbsp; &nbsp; &nbsp; LinkisJobClient.config().setDefaultServerUrl("http://ip:9001");
&nbsp; &nbsp; &nbsp; &nbsp; String code =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "\n"
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; + "env {\n"
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; + " spark.app.name = \"SeaTunnel\"\n"
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; + "spark.executor.instances = 2\n"
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; + "spark.executor.cores = 1\n"
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; + " spark.executor.memory = \"1g\"\n"
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; + "}\n"
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; + "\n"
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; + "source {\n"
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; + "Fake {\n"
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; + " result_table_name = \"my_dataset\"\n"
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; + " }\n"
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; + "\n"
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; + "}\n"
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; + "\n"
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; + "transform {\n"
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; + "}\n"
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; + "\n"
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; + "sink {\n"
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; + " Console {}\n"
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; + "}";
&nbsp; &nbsp; &nbsp; &nbsp; SubmittableSimpleOnceJob onceJob =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; LinkisJobClient.once()
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .simple()
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .builder()
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .setCreateService("seatunnel-Test")
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .setMaxSubmitTime(300000)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .addLabel(LabelKeyUtils.ENGINE_TYPE_LABEL_KEY(), "seatunnel-2.1.2")
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .addLabel(LabelKeyUtils.USER_CREATOR_LABEL_KEY(), "hadoop-seatunnel")
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .addLabel(LabelKeyUtils.ENGINE_CONN_MODE_LABEL_KEY(), "once")
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .addStartupParam(Configuration.IS_TEST_MODE().key(), true)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .addExecuteUser("hadoop")
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .addJobContent("runType", "sspark")
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .addJobContent("code", code)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .addJobContent("master", "local[4]")
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .addJobContent("deploy-mode", "client")
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .addSource("jobName", "OnceJobTest")
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .build();
&nbsp; &nbsp; &nbsp; &nbsp; onceJob. submit();
&nbsp; &nbsp; &nbsp; &nbsp; System.out.println(onceJob.getId());
&nbsp; &nbsp; &nbsp; &nbsp; onceJob. waitForCompleted();
&nbsp; &nbsp; &nbsp; &nbsp; System.out.println(onceJob.getStatus());
&nbsp; &nbsp; &nbsp; &nbsp; LinkisJobMetrics jobMetrics = onceJob. getJobMetrics();
&nbsp; &nbsp; &nbsp; &nbsp; System.out.println(jobMetrics.getMetrics());
&nbsp; &nbsp; }
}



之南:
我就是用的这个官方的code。需要改linkis的源码是吗


peacewong@WDS:
你用的是发布eatunnel 插件的1.3.1版本吗


之南:
1.3.1的源码自己编译的。官网没看到1.3.1的物料


夏晨:
https://linkis.apache.org/zh-CN/blog/2022/04/15/how-to-download-engineconn-plugin&nbsp;&nbsp;


之南:
@夏晨 感谢,我明天试一下,之前部署的时候看到最新的是1.3.0的