Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flink 弗林克没有';我什么也不输出 List lss=new ArrayList(); lss.添加(2); StreamExecutionEnvironment env=StreamExecutionEnvironment.getExecutionEnvironment(); 环境设置流时间特征(时间特征、摄取时间); 环境源集合(lss) .keyBy(x->“1”) .时间窗口(时间秒(4),时间秒(1)) .减少((x,y)->3) .地图(x->“vcvv”) .print(); 环境执行(“xxx”);_Apache Flink_Flink Streaming - Fatal编程技术网

Apache flink 弗林克没有';我什么也不输出 List lss=new ArrayList(); lss.添加(2); StreamExecutionEnvironment env=StreamExecutionEnvironment.getExecutionEnvironment(); 环境设置流时间特征(时间特征、摄取时间); 环境源集合(lss) .keyBy(x->“1”) .时间窗口(时间秒(4),时间秒(1)) .减少((x,y)->3) .地图(x->“vcvv”) .print(); 环境执行(“xxx”);

Apache flink 弗林克没有';我什么也不输出 List lss=new ArrayList(); lss.添加(2); StreamExecutionEnvironment env=StreamExecutionEnvironment.getExecutionEnvironment(); 环境设置流时间特征(时间特征、摄取时间); 环境源集合(lss) .keyBy(x->“1”) .时间窗口(时间秒(4),时间秒(1)) .减少((x,y)->3) .地图(x->“vcvv”) .print(); 环境执行(“xxx”);,apache-flink,flink-streaming,Apache Flink,Flink Streaming,我正在写一个flink演示来开始使用flink,我有几件事不明白: 1、 如果我从TimeCharacteristic.IngestionTime更改为TimeCharacteristic.ProcessingTime,则flink不输出任何内容 2、 窗口长度为4秒,滑动长度为1秒,我希望输出之间的间隔为1秒。但是,我看到4个输出同时打印。这很可能是因为您使用了IngestionTime特性,这在内部类似于EventTime,区别在于时间戳和水印是由Flink自动生成的。这基本上意味着,无论何

我正在写一个flink演示来开始使用flink,我有几件事不明白:
1、 如果我从TimeCharacteristic.IngestionTime更改为TimeCharacteristic.ProcessingTime,则flink不输出任何内容

2、 窗口长度为4秒,滑动长度为1秒,我希望输出之间的间隔为1秒。但是,我看到4个输出同时打印。

这很可能是因为您使用了
IngestionTime
特性,这在内部类似于
EventTime
,区别在于时间戳和水印是由Flink自动生成的。这基本上意味着,无论何时处理所有元素,Flink都将生成水印
Long.MAX_VALUE
,它将刷新所有结果并关闭窗口

对于
ProcessingTime
,这种情况不会发生,因此您需要自行处理。我建议参考一下这本书

至于第二个问题,这不是windows的工作方式。根据所选的时间特征,windows仅按Flink接收元素的时间或其时间戳(EventTime)收集元素。窗口中的幻灯片仅显示了它们的重叠程度,请再次参考

  • Flink在使用处理时语义时不输出任何内容,因为作业在windows关闭之前已完成运行。如果您提供了足够的数据,使作业能够运行至少4秒,您将看到一些输出

  • 使用摄取时间语义,您可以一次看到所有结果,因为随着作业的结束,所有窗口都将同时关闭。当输入流已被完全接收,并且作业正在关闭时,就会发生这种情况——此时会在整个集群中发送一个信号,关闭所有剩余的事件时间(和接收时间)窗口

  • List<Integer> lss = new ArrayList<>();
            lss.add(2);
    
            StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
            env.setStreamTimeCharacteristic(TimeCharacteristic.IngestionTime);
            env.fromCollection(lss)
                    .keyBy(x-> "1")
                    .timeWindow(Time.seconds(4), Time.seconds(1))
                    .reduce((x,y)->3)
                    .map(x->"vcvv")
                    .print();
            env.execute("xxx");