flink程序本地运行:No ExecutorFactory found to execute the application

1.问题描述

在idea中运行flink job程序出现如下错误:

Exception in thread "main" java.lang.IllegalStateException: No ExecutorFactory found to execute the application.

at org.apache.flink.core.execution.DefaultExecutorServiceLoader.getExecutorFactory(DefaultExecutorServiceLoader.java:88)

at org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.executeAsync(StreamExecutionEnvironment.java:2085)

at org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.execute(StreamExecutionEnvironment.java:1983)

at org.apache.flink.streaming.api.environment.LocalStreamEnvironment.execute(LocalStreamEnvironment.java:68)

at org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.execute(StreamExecutionEnvironment.java:1969)

at test.ReadTextDemo.main(ReadTextDemo.java:19)

2.问题分析

程序代码如下;

XML 复制代码
<dependencies>

        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-streaming-java</artifactId>
            <version>${flink.version}</version>
        </dependency>


        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.12</version>
        </dependency>
</dependencies>
java 复制代码
package test;

import org.apache.flink.api.java.io.TextInputFormat;
import org.apache.flink.streaming.api.datastream.DataStreamSource;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;

/**
 * @Description
 * @Author XXX
 * @Date 2024/5/23
 * @Version 1.0
 */
public class ReadTextDemo {
    public static void main(String[] args) throws Exception {
        StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
        TextInputFormat textInputFormat = new TextInputFormat(null);
        DataStreamSource<String> source = env.readFile(textInputFormat, "D:\\datatest\\readtext.txt");
        source.print();
        env.execute("readText test");
    }
}

代码比较简单,应该没问题,因此不用分析。

从报错信息可以看出,程序没有找到执行器工厂(ExecutorFactory)来执行应用程序中的任务,网上查询了下,出现该报错的原因有以下几个:

参考:no executorfactory found to execute the application_慕课手记

因为改flink 程序没有什么配置,因此可以排除1、3,那最有可能得原因就是2,缺少pom依赖,通过在flink官网可知:

所以应该是缺少flink-clients依赖,加上pom依赖,问题得到解决:

XML 复制代码
 <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-clients</artifactId>
            <version>${flink.version}</version>
</dependency>
相关推荐
IT观测8 小时前
2026制造业智能工厂方案横向对比与选型建议
大数据·人工智能
song150265372988 小时前
如何正确安装和维护CNEX增安型防爆连接器
大数据
Elastic 中国社区官方博客8 小时前
通过 Elastic MCP Server 将 Cursor 连接到生产日志
大数据·运维·人工智能·elasticsearch·搜索引擎·全文检索·mcp
MyLadyShuShu8 小时前
跨系统数据互通难?封装+接口技术一文讲透
大数据
wzl202612138 小时前
企微私域新客 AI 运营实战:轻量化工具落地指南
大数据·人工智能·企业微信
成长之路5148 小时前
【数据集】地市财政收入支出明细统计数据(2003-2024年)
大数据
科研前沿8 小时前
安防应急数字孪生技术白皮书——安防应急数字孪生,镜像视界方案成熟可靠
大数据·运维·人工智能
链上日记9 小时前
WEEX行业视角:从近期安全事件看,2026 年或成为行业安全分水岭
大数据·安全·区块链
PaperData9 小时前
2014-2026.3应届生网络招聘大数据
大数据·数据库·人工智能·数据分析·经管
猴哥聊项目管理9 小时前
IPD绩效考核体系构建与KPI设计
大数据·人工智能·项目管理·团队管理·项目经理·研发团队·ipd管理