idea快速创建flink项目

本文详细介绍了如何使用IntelliJ IDEA创建Flink项目。首先,需要从flink官网获取版本信息,然后在IDEA中选择Maven项目并创建自定义archetype。接着,确认Flink archetype是否添加成功,如果未找到,可以手动添加UserArchetypes.xml。最后,配置Maven项目,运行简单WordCount示例,完成Flink项目的搭建。
摘要由CSDN通过智能技术生成

本文将介绍如何使用idea快速创建flink项目。

1.flink官网查看flink版本

https://flink.apache.org/zh/downloads.html
在这里插入图片描述

2.idea创建一个新的项目,选择Maven项目,并选择"Create from archetype",由于没有Flink的archetype,所以需要自己添加。这里version选择从flink官网查看到的flink版本。

groupId:org.apache.flink
artifactId:flink-quickstart-java
version:1.12.4或者1.13.1

在这里插入图片描述

点击OK后在archetype列表中查看Flink的archetype是否添加成功,添加成功的话如下图所示:
在这里插入图片描述

若没找到,可去C:\Users\[你的用户名]\AppData\Local\JetBrains\IntelliJIdea2021.2\Maven\Indices目录下新建UserArchetypes.xml文件,文件内容如下:

<archetypes>
    <archetype groupId="org.apache.flink" artifactId="flink-quickstart-java" version="1.13.1" />
IDEA中模拟Flink的Checkpoint,可以使用Flink提供的TestingUtils类来进行模拟。具体步骤如下: 1. 创建一个Flink的测试环境,可以使用TestingUtils类的createTestEnvironment方法来创建。 2. 在测试环境中,创建一个带有Checkpoint的DataStream。 3. 启动测试环境,并等待Checkpoint完成。 4. 对于每个Checkpoint,可以使用TestingUtils类的advanceTime方法来模拟时间的推进。 5. 在测试完成后,可以使用TestingUtils类的assertStreamEquals方法来验证DataStream的输出结果是否正确。 下面是一个简单的示例代码: ```java import org.apache.flink.streaming.api.CheckpointingMode; import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment; import org.apache.flink.streaming.api.functions.source.SourceFunction; import org.apache.flink.streaming.api.watermark.Watermark; import org.apache.flink.streaming.api.windowing.time.Time; import org.apache.flink.streaming.util.TestStreamEnvironment; import org.apache.flink.test.util.AbstractTestBase; import org.junit.Test; import java.util.concurrent.TimeUnit; public class CheckpointTest extends AbstractTestBase { @Test public void testCheckpoint() throws Exception { StreamExecutionEnvironment env = TestStreamEnvironment.createTestStreamEnvironment(); env.enableCheckpointing(1000, CheckpointingMode.EXACTLY_ONCE); env.setParallelism(1); env.addSource(new SourceFunction<String>() { private volatile boolean running = true; @Override public void run(SourceContext<String> ctx) throws Exception { while (running) { ctx.collectWithTimestamp("hello", System.currentTimeMillis()); ctx.emitWatermark(new Watermark(System.currentTimeMillis())); TimeUnit.MILLISECONDS.sleep(500); } } @Override public void cancel() { running = false; } }) .keyBy(value -> value) .timeWindow(Time.seconds(1)) .reduce((value1, value2) -> value1 + " " + value2) .print(); env.execute(); // 模拟第一个checkpoint TestStreamEnvironment.setCurrentTime(1000); env.getCheckpointCoordinator().triggerCheckpoint(System.currentTimeMillis(), false); // 模拟第二个checkpoint TestStreamEnvironment.setCurrentTime(2000); env.getCheckpointCoordinator().triggerCheckpoint(System.currentTimeMillis(), false); } } ``` 上面的代码演示了如何在测试环境中模拟Flink的Checkpoint,其中使用了TestingUtils类的一些方法来模拟时间的推进和验证输出结果。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值