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>
相关推荐
xiaogai_gai4 小时前
仅查询策略实战:从金蝶云·星空旗舰版定时拉取收料通知单
大数据·数据库·python
skywsp6 小时前
Agent智能体架构设计-知识整理
大数据·人工智能
starzy19906 小时前
KafkaProducer 加载元数据:一条 MetadataRequest 的完整旅程
大数据·kafka
内容营销专家刘鑫炜6 小时前
AI搜索实战专家刘鑫炜:做AI搜索第一步,首先得让 AI 看到你
大数据·人工智能
大大大大晴天6 小时前
每天认识一个组件:Elasticsearch
大数据
Simon_lca6 小时前
ZARA、H&M、SHEIN验厂差异全对比:一套底层记录,三套接口输出
大数据·人工智能·经验分享·科技·制造
爱喝雪碧的可乐6 小时前
DeepSeek 崩了近5小时:一次故障扒透「单点依赖、重试风暴与大模型高可用」
大数据·人工智能·deepseek
Leo.yuan7 小时前
企业级AI分析平台技术选型:FineBI(AI原生版)的NL2BI架构与业务适配能力
大数据·人工智能
疯狂奔跑华丽跌倒7 小时前
医药行业数据治理工具选型,需匹配业务与AI落地需求
大数据·人工智能·经验分享
数据与AI工程手记8 小时前
Inmon和Kimball到底差在哪?
大数据