flink运行job任务时报错 Could not retrieve the execution result

flink运行job任务时报错

org.apache.flink.client.program.ProgramInvocationException: Could not retrieve the execution result. (JobID: ed150cf006f7e66ebe74c75f72431463)
        at org.apache.flink.client.program.rest.RestClusterClient.submitJob(RestClusterClient.java:255)
        at org.apache.flink.client.program.ClusterClient.run(ClusterClient.java:338)
        at org.apache.flink.client.program.ClusterClient.run(ClusterClient.java:326)
        at org.apache.flink.client.program.ContextEnvironment.execute(ContextEnvironment.java:62)
        at org.apache.flink.api.java.ExecutionEnvironment.execute(ExecutionEnvironment.java:820)
        at org.apache.flink.api.scala.ExecutionEnvironment.execute(ExecutionEnvironment.scala:525)
        at com.zhangyue.FlinkTest$.main(FlinkTest.scala:19)
        at com.zhangyue.FlinkTest.main(FlinkTest.scala)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.apache.flink.client.program.PackagedProgram.callMainMethod(PackagedProgram.java:576)
        at org.apache.flink.client.program.PackagedProgram.invokeInteractiveModeForExecution(PackagedProgram.java:438)
        at org.apache.flink.client.program.ClusterClient.run(ClusterClient.java:274)
        at org.apache.flink.client.cli.CliFrontend.executeProgram(CliFrontend.java:746)
        at org.apache.flink.client.cli.CliFrontend.runProgram(CliFrontend.java:273)
        at org.apache.flink.client.cli.CliFrontend.run(CliFrontend.java:205)
        at org.apache.flink.client.cli.CliFrontend.parseParameters(CliFrontend.java:1010)
        at org.apache.flink.client.cli.CliFrontend.lambda$main$10(CliFrontend.java:1083)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:422)
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1754)
        at org.apache.flink.runtime.security.HadoopSecurityContext.runSecured(HadoopSecurityContext.java:41)
        at org.apache.flink.client.cli.CliFrontend.main(CliFrontend.java:1083)
Caused by: org.apache.flink.runtime.client.JobSubmissionException: Failed to submit JobGraph.
        at org.apache.flink.client.program.rest.RestClusterClient.lambda$submitJob$8(RestClusterClient.java:382)
        at java.util.concurrent.CompletableFuture.uniExceptionally(CompletableFuture.java:870)
        at java.util.concurrent.CompletableFuture$UniExceptionally.tryFire(CompletableFuture.java:852)
        at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:474)
        at java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:1977)
        at org.apache.flink.runtime.concurrent.FutureUtils.lambda$retryOperationWithDelay$8(FutureUtils.java:263)
        at java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:760)
        at java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:736)
        at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:474)
        at java.util.concurrent.CompletableFuture.postFire(CompletableFuture.java:561)
        at java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:929)
        at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:442)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
Caused by: org.apache.flink.runtime.rest.util.RestClientException: [Internal server error., <Exception on server side:
org.apache.flink.runtime.client.JobSubmissionException: Failed to submit job.
        at org.apache.flink.runtime.dispatcher.Dispatcher.lambda$internalSubmitJob$2(Dispatcher.java:333)
        at java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:822)
        at java.util.concurrent.CompletableFuture$UniHandle.tryFire(CompletableFuture.java:797)
        at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:442)
        at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:40)
        at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(ForkJoinExecutorConfigurator.scala:44)
        at akka.dispatch.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
        at akka.dispatch.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
        at akka.dispatch.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
        at akka.dispatch.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
Caused by: java.lang.RuntimeException: org.apache.flink.runtime.client.JobExecutionException: Could not set up JobManager
        at org.apache.flink.util.function.CheckedSupplier.lambda$unchecked$0(CheckedSupplier.java:36)
        at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1590)
        ... 6 more
Caused by: org.apache.flink.runtime.client.JobExecutionException: Could not set up JobManager
        at org.apache.flink.runtime.jobmaster.JobManagerRunner.<init>(JobManagerRunner.java:152)
        at org.apache.flink.runtime.dispatcher.DefaultJobManagerRunnerFactory.createJobManagerRunner(DefaultJobManagerRunnerFactory.java:83)
        at org.apache.flink.runtime.dispatcher.Dispatcher.lambda$createJobManagerRunner$5(Dispatcher.java:375)
        at org.apache.flink.util.function.CheckedSupplier.lambda$unchecked$0(CheckedSupplier.java:34)
        ... 7 more
Caused by: org.apache.flink.runtime.client.JobExecutionException: Cannot initialize task 'DataSink (TextOutputFormat (hdfs://hadoop01:8020/put) - UTF-8)': Could not find a file system implementation for scheme 'hdfs'. The scheme is not directly supported by Flink and no Hadoop file system to support this scheme could be loaded.
        at org.apache.flink.runtime.executiongraph.ExecutionGraphBuilder.buildGraph(ExecutionGraphBuilder.java:218)
        at org.apache.flink.runtime.executiongraph.ExecutionGraphBuilder.buildGraph(ExecutionGraphBuilder.java:106)
        at org.apache.flink.runtime.scheduler.LegacyScheduler.createExecutionGraph(LegacyScheduler.java:207)
        at org.apache.flink.runtime.scheduler.LegacyScheduler.createAndRestoreExecutionGraph(LegacyScheduler.java:184)
        at org.apache.flink.runtime.scheduler.LegacyScheduler.<init>(LegacyScheduler.java:176)
        at org.apache.flink.runtime.scheduler.LegacySchedulerFactory.createInstance(LegacySchedulerFactory.java:70)
        at org.apache.flink.runtime.jobmaster.JobMaster.createScheduler(JobMaster.java:275)
        at org.apache.flink.runtime.jobmaster.JobMaster.<init>(JobMaster.java:265)
        at org.apache.flink.runtime.jobmaster.factories.DefaultJobMasterServiceFactory.createJobMasterService(DefaultJobMasterServiceFactory.java:98)
        at org.apache.flink.runtime.jobmaster.factories.DefaultJobMasterServiceFactory.createJobMasterService(DefaultJobMasterServiceFactory.java:40)
        at org.apache.flink.runtime.jobmaster.JobManagerRunner.<init>(JobManagerRunner.java:146)
        ... 10 more
Caused by: org.apache.flink.core.fs.UnsupportedFileSystemSchemeException: Could not find a file system implementation for scheme 'hdfs'. The scheme is not directly supported by Flink and no Hadoop file system to support this scheme could be loaded.
        at org.apache.flink.core.fs.FileSystem.getUnguardedFileSystem(FileSystem.java:447)
        at org.apache.flink.core.fs.FileSystem.get(FileSystem.java:359)
        at org.apache.flink.core.fs.Path.getFileSystem(Path.java:298)
        at org.apache.flink.api.common.io.FileOutputFormat.initializeGlobal(FileOutputFormat.java:275)
        at org.apache.flink.runtime.jobgraph.InputOutputFormatVertex.initializeOnMaster(InputOutputFormatVertex.java:100)
        at org.apache.flink.runtime.executiongraph.ExecutionGraphBuilder.buildGraph(ExecutionGraphBuilder.java:214)
        ... 20 more
Caused by: org.apache.flink.core.fs.UnsupportedFileSystemSchemeException: Hadoop is not in the classpath/dependencies.
        at org.apache.flink.core.fs.UnsupportedSchemeFactory.create(UnsupportedSchemeFactory.java:58)
        at org.apache.flink.core.fs.FileSystem.getUnguardedFileSystem(FileSystem.java:443)
        ... 25 more

End of exception on server side>]
        at org.apache.flink.runtime.rest.RestClient.parseResponse(RestClient.java:389)
        at org.apache.flink.runtime.rest.RestClient.lambda$submitRequest$3(RestClient.java:373)
        at java.util.concurrent.CompletableFuture.uniCompose(CompletableFuture.java:952)
        at java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:926)
        ... 4 more

解决方法:
报错原因:flink不识别hadoop环境,因此再将flink与hadoop整合时,需要将一个jar包放入flink的lib目录下
具体的jar包为 flink-shaded-hadoop-2-uber-2.7.5-10.0.jar 具体的jar包版本需要根据安装的hadoop来选择,2.7,2.6等
jar包下载连接 https://flink.apache.org/downloads.html
在这里插入图片描述

jar包放入lib目录后,需要重启flink进程
再次运行job任务就可以运行成功了

<think>好的,我现在需要解决用户的问题:“flink cdc 提交任务出现Could not start the JobMaster.”。用户之前已经问过关于Flink CDC初始化协调器的问题,现在遇到了JobMaster启动失败的错误。这可能涉及到更广泛的集群配置或资源问题。 首先,我应该回顾用户之前的问题,确定之前的解决方案是否相关。之前的问题是关于协调器无法实例化,可能涉及依赖、连接配置等。现在的问题是在提交任务JobMaster无法启动,这可能更偏向于Flink集群本身的配置或资源问题。 接下来,我需要分析可能的原因。JobMaster是Flink作业的主节点,负责协调任务执行。启动失败可能的原因包括资源不足、配置错误、网络问题、依赖冲突或类加载问题,以及日志中的具体错误信息。 首先,资源不足。用户需要检查集群的资源,比如JobManager的内存是否足够。如果用户使用的是YARN或Kubernetes,可能资源请求超过了集群的可用资源。例如,如果JobManager的内存设置过低,或者没有足够的内存分配给TaskManagers,可能导致启动失败。 然后是配置错误。检查flink-conf.yaml中的配置是否正确,比如jobmanager.rpc.address是否设置正确,端口是否被占用,或者高可用性配置是否有问题。如果用户启用了高可用性,需要确保ZooKeeper配置正确,并且相关服务正在运行。 网络问题也是一个可能因素。需要确保所有节点之间的网络通信正常,JobManager能够与TaskManagers通信,以及集群能够访问外部依赖如MySQL数据库。防火墙或安全组设置可能会阻止必要的端口通信。 依赖冲突或类加载问题同样可能引发此错误。如果用户作业的依赖与Flink集群的依赖存在版本冲突,或者某些类在类路径中被重复加载,可能导致JobMaster启动失败。需要检查用户程序的依赖树,确保所有库版本兼容。 此外,日志分析至关重要。用户需要查看JobManager的日志,寻找具体的错误信息,如ClassNotFoundException、NoSuchMethodError,或者连接拒绝等。这些信息可以帮助缩小问题范围。 可能还需要考虑Flink版本与CDC连接器的兼容性,虽然之前已经提到过,但这里如果用户升级了Flink或CDC版本,也可能导致新的问题。此外,检查作业代码是否有误,比如错误的API使用或配置参数,也可能导致JobMaster启动失败。 最后,用户可能需要尝试简化作业配置,排除其他因素。例如,提交一个简单的Flink作业(如WordCount)来确认集群本身是否正常工作。如果简单作业可以运行,问题可能出在CDC相关的配置或代码上。 总结下来,我需要分步骤列出可能的原因和对应的解决方案,帮助用户系统地排查问题。同,提醒用户检查日志获取具体错误信息,因为这是解决问题的关键。</think>在 Flink CDC 作业提交遇到 **`Could not start the JobMaster`** 错误,通常与 **Flink 集群资源分配、配置错误或环境依赖问题** 有关。以下是可能的原因和解决方案: --- ### **1. 资源不足** JobMaster 是 Flink 作业的主控节点,若集群资源不足(如内存、CPU),可能导致其无法启动。 - **检查项**: - **JobManager 内存配置**:确保 `flink-conf.yaml` 中 `jobmanager.memory.process.size` 或 `jobmanager.memory.flink.size` 设置足够(例如 `2g` 以上)。 - **TaskManager 资源**:TaskManager 是否已注册到集群?检查 TaskManager 的日志是否正常启动。 - **集群资源管理器限制**:若使用 YARN/K8s,确认资源请求未超过集群配额(如 YARN 的 `yarn.scheduler.maximum-allocation-mb`)。 - **解决方案**: - 调整 Flink 配置文件 (`flink-conf.yaml`): ```yaml jobmanager.memory.process.size: 4096m # 增加 JobManager 内存 taskmanager.memory.process.size: 4096m # 增加 TaskManager 内存 ``` - 提交作业显式指定资源: ```bash ./bin/flink run -m yarn-cluster -yjm 2048 -ytm 4096 your-job.jar ``` --- ### **2. 配置错误** Flink 集群或作业的配置参数错误可能导致 JobMaster 初始化失败。 - **检查项**: - **高可用性(HA)配置**:若启用 HA,确保 ZooKeeper 配置正确且服务可用。 - **网络配置**:JobManager 的 RPC 地址 (`jobmanager.rpc.address`) 是否可达?端口是否被占用? - **检查点/状态后端配置**:若使用 HDFS/RocksDB,确认路径权限和依赖已正确配置。 - **解决方案**: - 检查 `flink-conf.yaml` 中的核心配置: ```yaml jobmanager.rpc.address: <hostname> # 确保是正确的主机名或 IP high-availability: zookeeper high-availability.zookeeper.quorum: zk1:2181,zk2:2181,zk3:2181 ``` - 确保所有节点的间同步(NTP 服务正常)。 --- ### **3. 依赖冲突或类加载问题** 若作业的依赖(如 Flink CDC、MySQL 驱动)与集群的依赖版本冲突,可能导致类加载失败。 -
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值