Java Flink S3流化文件链接未将文件写入S3

Java Flink S3流化文件链接未将文件写入S3,java,amazon-s3,apache-flink,Java,Amazon S3,Apache Flink,我正在用Flink做一个将数据写入S3的POC。程序没有给出错误。但是,我也没有看到任何文件是用S3编写的 下面是代码 公共类精简作业{ 公共静态void main(字符串[]args)引发异常{ //设置流执行环境 最终字符串outputPath=“s3a://testbucket-s3-flink/data/”; 最终StreamExecutionEnvironment env=StreamExecutionEnvironment.getExecutionEnvironment(); //

我正在用Flink做一个将数据写入S3的POC。程序没有给出错误。但是,我也没有看到任何文件是用S3编写的

下面是代码


公共类精简作业{
公共静态void main(字符串[]args)引发异常{
//设置流执行环境
最终字符串outputPath=“s3a://testbucket-s3-flink/data/”;
最终StreamExecutionEnvironment env=StreamExecutionEnvironment.getExecutionEnvironment();
//启用检查点
环境启用检查点();
//S3水槽
最终StreamingFileSink接收器=StreamingFileSink
.forRowFormat(新路径(outputPath)、新SimpleStringEncoder(“UTF-8”))
.build();
//来源是当地的卡夫卡
属性=新属性();
setProperty(“bootstrap.servers”,“kafka:9094”);
properties.setProperty(“group.id”、“test”);
DataStream input=env.addSource(新的flinkkafaconsumer(“queueing.transactions”,新的SimpleStringSchema(),properties));
input.flatMap(new Tokenizer())//用于生成单词的标记器
.keyBy(0)//对每个字的流进行逻辑分区
.timeWindow(Time.minutes(1))//滚动窗口定义
.sum(1)//对每个分区的字数求和
.map(value->value.f0+“计数:”+value.f1.toString()+“\n”)
.addSink(sink);
//执行程序
execute(“Flink流式Java API框架”);
}
公共静态最终类标记器
实现FlatMapFunction{
@凌驾
公共void平面图(字符串值,收集器输出){
String[]tokens=value.toLowerCase().split(\\W+);
for(字符串标记:标记){
if(token.length()>0){
out.collect(新的Tuple2(令牌,1));
}
}
}
}
}
请注意,我已在配置中设置了
s3.access key
s3.secret key
值,并通过将它们更改为不正确的值进行了测试(我在不正确的值上遇到了错误)


有没有什么提示可能出了什么问题?

可能是您遇到了什么问题

鉴于Flink接收器和UDF通常不会区分正常作业终止(例如,有限输入流)和故障导致的终止,在作业正常终止时,最后一个进行中的文件不会转换为“完成”状态


您是否包含flink-s3-fs-hadoop依赖项?这是必需的。它是使用ENABLE_PLUGINS环境变量作为插件启用的。谢谢您的指针。然而,在我的平面图中,这是一个愚蠢的问题。