Flink在idea写streamingapi是不是只用引用这三个包就行了?
org.apache.flink
flink-java
${flink.version}
org.apache.flink
flink-streaming-java${scala.binary.version}
${flink.version}
org.apache.flink
flink-clients${scala.binary.version}
${flink.version}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在使用 IntelliJ IDEA 开发基于 Flink 的 Streaming API 作业时,是否只需要引用以下三个依赖包:
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-java</artifactId>
<version>${flink.version}</version>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-streaming-java_${scala.binary.version}</artifactId>
<version>${flink.version}</version>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-clients_${scala.binary.version}</artifactId>
<version>${flink.version}</version>
</dependency>
上述三个依赖是开发 Flink Streaming API 作业的核心依赖,但是否足够取决于您的具体业务需求和使用场景。以下是详细分析:
flink-java
提供了 Flink 的基础功能,例如执行环境(ExecutionEnvironment
)和数据集(DataSet
)的抽象。
flink-streaming-java_${scala.binary.version}
提供了 Flink Streaming API 的核心功能,包括 StreamExecutionEnvironment
和各种流式算子(如 map
、filter
等)。${scala.binary.version}
需要根据您使用的 Flink 版本指定(例如 2.11
或 2.12
)。
flink-clients_${scala.binary.version}
提供了提交和运行 Flink 作业所需的客户端功能,例如 ClusterClient
和 JobExecutionResult
。
这三个依赖是开发和运行 Flink Streaming 作业的基础,适用于简单的流处理任务。
根据您的业务需求,可能需要引入其他依赖。以下是一些常见场景及其对应的依赖需求:
如果您需要从外部系统(如 Kafka、MySQL、Hudi 等)读取或写入数据,则需要引入相应的连接器依赖。例如: - Kafka 连接器
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-connector-kafka_${scala.binary.version}</artifactId>
<version>${flink.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba.ververica</groupId>
<artifactId>ververica-connector-mysql</artifactId>
<version>${vvr.version}</version>
</dependency>
如果您的作业需要使用 Flink 的 Table API 或 SQL 功能,则需要引入以下依赖:
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-table-api-java-bridge_${scala.binary.version}</artifactId>
<version>${flink.version}</version>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-table-planner_${scala.binary.version}</artifactId>
<version>${flink.version}</version>
</dependency>
如果您的作业需要与文件系统(如 HDFS、OSS)交互,则需要引入相关依赖。例如: - 阿里云 OSS 支持
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>3.3.2</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-aliyun</artifactId>
<version>3.3.2</version>
</dependency>
<dependency>
<groupId>org.apache.hudi</groupId>
<artifactId>hudi-flink${flink.version}-bundle</artifactId>
<version>${hudi.version}</version>
</dependency>
重要提醒:确保 ${flink.version}
和 ${scala.binary.version}
与您使用的 Flink 版本一致,并且所有依赖的版本兼容性经过验证。
如果您不确定具体需求,可以先从核心依赖开始,逐步添加其他依赖以满足业务逻辑。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。