DataLinkDC / dinky

Dinky is a real-time data development platform based on Apache Flink, enabling agile data development, deployment and operation.
http://www.dinky.org.cn
Apache License 2.0
3.07k stars 1.13k forks source link

[Bug] [FlinkSQL] Creating a FlinkSQL task throws an exception #3408

Closed UmfintechWtc closed 5 months ago

UmfintechWtc commented 5 months ago

Search before asking

What happened

创建FlinkSql类型的任务运行后报错,详情如下 img_v3_02a1_def6a068-c8d1-45e9-9429-3f6be962ba5g

What you expected to happen

我搜到了一个相关问题的issue,说是要调试profile文件。 我了解了下profile,貌似是只有在Dinky本地开发环境下才能使用。

How to reproduce

使用的dinky版本:dinky-release-1.14-1.0.1.tar.gz 部署方式:单节点常规部署 操作步骤: 1)创建FlinkSql类型的任务 2)点击保存 3)查看task接口返回报错: Cause: java.sql.SQLException: Field 'name' doesn't have a default value 请求报文:{"useResult":true,"maxRowNum":100,"type":"local"} 响应报文: { "data": "org.dinky.data.exception.DinkyException: org.springframework.dao.DataIntegrityViolationException: \n### Error updating database. Cause: java.sql.SQLException: Field 'name' doesn't have a default value\n### The error may exist in org/dinky/mapper/TaskMapper.java (best guess)\n### The error may involve org.dinky.mapper.TaskMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO dinky_task (statement, operator, create_time, update_time, creator, updater, tenant_id) VALUES (?, ?, ?, ?, ?, ?, 1)\n### Cause: java.sql.SQLException: Field 'name' doesn't have a default value\n; Field 'name' doesn't have a default value; nested exception is java.sql.SQLException: Field 'name' doesn't have a default value\n\tat org.dinky.aop.UdfClassLoaderAspect.round(UdfClassLoaderAspect.java:58)\n\tat sun.reflect.GeneratedMethodAccessor132.invoke(Unknown Source)\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n\tat java.lang.reflect.Method.invoke(Method.java:498)\n\tat org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\n\tat org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\n\tat org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\n\tat org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n\tat org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n\tat org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n\tat org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n\tat org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n\tat org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n\tat org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n\tat org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\n\tat org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n\tat org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n\tat org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n\tat org.dinky.service.impl.TaskServiceImpl$$EnhancerBySpringCGLIB$$85240d77.saveOrUpdateTask()\n\tat org.dinky.controller.TaskController.saveOrUpdateTask(TaskController.java:182)\n\tat org.dinky.controller.TaskController$$FastClassBySpringCGLIB$$5b68bd32.invoke()\n\tat org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n\tat org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n\tat org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n\tat org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n\tat org.springframework.aop.framework.adapter.AfterReturningAdviceInterceptor.invoke(AfterReturningAdviceInterceptor.java:57)\n\tat org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n\tat org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n\tat org.springframework.aop.aspectj.AspectJAfterThrowingAdvice.invoke(AspectJAfterThrowingAdvice.java:64)\n\tat org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\n\tat org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n\tat org.springframework.aop.framework.adapter.AfterReturningAdviceInterceptor.invoke(AfterReturningAdviceInterceptor.java:57)\n\tat org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\n\tat org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n\tat org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\n\tat org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n\tat org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n\tat org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)\n\tat org.dinky.controller.TaskController$$EnhancerBySpringCGLIB$$bbd7ee88.saveOrUpdateTask()\n\tat sun.reflect.GeneratedMethodAccessor324.invoke(Unknown Source)\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n\tat java.lang.reflect.Method.invoke(Method.java:498)\n\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\n\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\n\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\n\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\n\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\n\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)\n\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)\n\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\n\tat org.springframework.web.servlet.FrameworkServlet.doPut(FrameworkServlet.java:920)\n\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:558)\n\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:623)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\n\tat org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\n\tat org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\n\tat org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\n\tat cn.dev33.satoken.filter.SaPathCheckFilterForServlet.doFilter(SaPathCheckFilterForServlet.java:55)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\n\tat org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\n\tat org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\n\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\n\tat org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)\n\tat org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)\n\tat org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)\n\tat org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)\n\tat org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)\n\tat org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)\n\tat org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\n\tat org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)\n\tat org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)\n\tat org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)\n\tat org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)\n\tat org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)\n\tat org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)\n\tat org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\n\tat org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\n\tat org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\n\tat java.lang.Thread.run(Thread.java:750)\nCaused by: org.springframework.dao.DataIntegrityViolationException: \n### Error updating database. Cause: java.sql.SQLException: Field 'name' doesn't have a default value\n### The error may exist in org/dinky/mapper/TaskMapper.java (best guess)\n### The error may involve org.dinky.mapper.TaskMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO dinky_task (statement, operator, create_time, update_time, creator, updater, tenant_id) VALUES (?, ?, ?, ?, ?, ?, 1)\n### Cause: java.sql.SQLException: Field 'name' doesn't have a default value\n; Field 'name' doesn't have a default value; nested exception is java.sql.SQLException: Field 'name' doesn't have a default value\n\tat org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:251)\n\tat org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\n\tat org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)\n\tat org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n\tat com.sun.proxy.$Proxy155.insert(Unknown Source)\n\tat org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)\n\tat com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59)\n\tat com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n\tat com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n\tat com.sun.proxy.$Proxy211.insert(Unknown Source)\n\tat com.baomidou.mybatisplus.extension.service.IService.save(IService.java:63)\n\tat com.baomidou.mybatisplus.extension.service.impl.ServiceImpl.saveOrUpdate(ServiceImpl.java:165)\n\tat org.dinky.service.impl.TaskServiceImpl.saveOrUpdateTask(TaskServiceImpl.java:638)\n\tat org.dinky.service.impl.TaskServiceImpl$$FastClassBySpringCGLIB$$22087f7c.invoke()\n\tat org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n\tat org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)\n\tat org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n\tat org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)\n\tat org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n\tat org.dinky.aop.UdfClassLoaderAspect.round(UdfClassLoaderAspect.java:55)\n\t... 98 more\nCaused by: java.sql.SQLException: Field 'name' doesn't have a default value\n\tat com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:130)\n\tat com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\n\tat com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912)\n\tat com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)\n\tat com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:497)\n\tat org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47)\n\tat org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)\n\tat sun.reflect.GeneratedMethodAccessor28.invoke(Unknown Source)\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n\tat java.lang.reflect.Method.invoke(Method.java:498)\n\tat org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n\tat com.sun.proxy.$Proxy282.update(Unknown Source)\n\tat org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\n\tat org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\n\tat org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\n\tat sun.reflect.GeneratedMethodAccessor24.invoke(Unknown Source)\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n\tat java.lang.reflect.Method.invoke(Method.java:498)\n\tat org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n\tat com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\n\tat org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n\tat com.sun.proxy.$Proxy281.update(Unknown Source)\n\tat org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:194)\n\tat org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:181)\n\tat sun.reflect.GeneratedMethodAccessor169.invoke(Unknown Source)\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n\tat java.lang.reflect.Method.invoke(Method.java:498)\n\tat org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n\t... 114 more\n", "code": 5, "msg": "org.springframework.dao.DataIntegrityViolationException: \n### Error updating database. Cause: java.sql.SQLException: Field 'name' doesn't have a default value\n### The error may exist in org/dinky/mapper/TaskMapper.java (best guess)\n### The error may involve org.dinky.mapper.TaskMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO dinky_task (statement, operator, create_time, update_time, creator, updater, tenant_id) VALUES (?, ?, ?, ?, ?, ?, 1)\n### Cause: java.sql.SQLException: Field 'name' doesn't have a default value\n; Field 'name' doesn't have a default value; nested exception is java.sql.SQLException: Field 'name' doesn't have a default value", "time": "2024-04-17 11:37:34", "success": false }

Anything else

dinky使用mysql驱动版本为mysql-connector-j-8.3.0.jar

Version

1.0.1

Are you willing to submit PR?

Code of Conduct

github-actions[bot] commented 5 months ago

Hello @UmfintechWtc, this issue is about web, so I assign it to @Zzm0809. If you have any questions, you can comment and reply.

你好 @UmfintechWtc, 这个 issue 是关于 web 的,所以我把它分配给了 @Zzm0809。如有任何问题,可以评论回复。

Zzm0809 commented 5 months ago

此问题已有人反馈,原因是集成 flink 的环境问题, 其余情况无法复现 排查是否按照官网的 dinky 集成 flink 文档操作, 大概率是环境问题导致

github-actions[bot] commented 5 months ago

Hello @UmfintechWtc, thank you for your feedback, but this issue will not be fixed. You can search for keywords in the Issue list to view it. Issues are marked `Wont Fix`

你好 @UmfintechWtc, 感谢你的反馈, 但是此问题不会被修复,你可以在 Issue 列表中搜索关键字来查看, Issues 标注为 `Wont Fix` 。

UmfintechWtc commented 5 months ago

此问题已有人反馈,原因是集成 flink 的环境问题, 其余情况无法复现 排查是否按照官网的 dinky 集成 flink 文档操作, 大概率是环境问题导致

还有个疑问,flink与dinky必须要在同一个节点吗。还是说dinky必须要和flink_jobmanager在同一台节点上。 这是我的flink环境,参考集成flink,没有flink-table-planner-loader-1.18.0.jar

[root@app1:flink_0]# pwd
/opt/module/flink
[root@app1:flink_0]# ./bin/flink --version
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/module/flink/lib/flink-doris-connector-1.14_2.12-1.1.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/module/flink/lib/log4j-slf4j-impl-2.17.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
Version: 1.14.5, Commit ID: 253dcb1
[root@app1:flink_0]# ll lib/
total 321324
-rw-r--r-- 1 root      root       65799881 Apr 18 09:40 flink-1.18.0-bin-scala_2.12.tgz
-rwxr-xr-x 1 starcross starcross    251194 Nov 23  2022 flink-connector-mysql-cdc-2.2.1.jar
-rwxr-xr-x 1 starcross starcross     85586 Jul 20  2022 flink-csv-1.14.5.jar
-rwxr-xr-x 1 starcross starcross 136098285 Jul 20  2022 flink-dist_2.12-1.14.5.jar
-rwxr-xr-x 1 starcross starcross  10208589 Jul 20  2022 flink-doris-connector-1.14_2.12-1.1.0.jar
-rwxr-xr-x 1 starcross starcross    153142 Jul 20  2022 flink-json-1.14.5.jar
-rwxr-xr-x 1 starcross starcross   7709731 Jul 20  2022 flink-shaded-zookeeper-3.4.14.jar
-rwxr-xr-x 1 starcross starcross  39666418 Jul 20  2022 flink-table_2.12-1.14.5.jar
-rwxr-xr-x 1 starcross starcross    208006 Jul 20  2022 log4j-1.2-api-2.17.1.jar
-rwxr-xr-x 1 starcross starcross    301872 Jul 20  2022 log4j-api-2.17.1.jar
-rwxr-xr-x 1 starcross starcross   1790452 Jul 20  2022 log4j-core-2.17.1.jar
-rwxr-xr-x 1 starcross starcross     24279 Jul 20  2022 log4j-slf4j-impl-2.17.1.jar
Zzm0809 commented 5 months ago

此问题已有人反馈,原因是集成 flink 的环境问题, 其余情况无法复现 排查是否按照官网的 dinky 集成 flink 文档操作, 大概率是环境问题导致

还有个疑问,flink与dinky必须要在同一个节点吗。还是说dinky必须要和flink_jobmanager在同一台节点上。 这是我的flink环境,参考集成flink,没有flink-table-planner-loader-1.18.0.jar

[root@app1:flink_0]# pwd
/opt/module/flink
[root@app1:flink_0]# ./bin/flink --version
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/module/flink/lib/flink-doris-connector-1.14_2.12-1.1.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/module/flink/lib/log4j-slf4j-impl-2.17.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
Version: 1.14.5, Commit ID: 253dcb1
[root@app1:flink_0]# ll lib/
total 321324
-rw-r--r-- 1 root      root       65799881 Apr 18 09:40 flink-1.18.0-bin-scala_2.12.tgz
-rwxr-xr-x 1 starcross starcross    251194 Nov 23  2022 flink-connector-mysql-cdc-2.2.1.jar
-rwxr-xr-x 1 starcross starcross     85586 Jul 20  2022 flink-csv-1.14.5.jar
-rwxr-xr-x 1 starcross starcross 136098285 Jul 20  2022 flink-dist_2.12-1.14.5.jar
-rwxr-xr-x 1 starcross starcross  10208589 Jul 20  2022 flink-doris-connector-1.14_2.12-1.1.0.jar
-rwxr-xr-x 1 starcross starcross    153142 Jul 20  2022 flink-json-1.14.5.jar
-rwxr-xr-x 1 starcross starcross   7709731 Jul 20  2022 flink-shaded-zookeeper-3.4.14.jar
-rwxr-xr-x 1 starcross starcross  39666418 Jul 20  2022 flink-table_2.12-1.14.5.jar
-rwxr-xr-x 1 starcross starcross    208006 Jul 20  2022 log4j-1.2-api-2.17.1.jar
-rwxr-xr-x 1 starcross starcross    301872 Jul 20  2022 log4j-api-2.17.1.jar
-rwxr-xr-x 1 starcross starcross   1790452 Jul 20  2022 log4j-core-2.17.1.jar
-rwxr-xr-x 1 starcross starcross     24279 Jul 20  2022 log4j-slf4j-impl-2.17.1.jar

可以不在一起

loader 问题,请认真看官网