Flink操练(四十三)之迟到元素

关键代码

DataStream> watermarks = map.assignTimestampsAndWatermarks(
                WatermarkStrategy.>forMonotonousTimestamps()
                        .withTimestampAssigner(new SerializableTimestampAssigner>() {
                            @Override
                            public long extractTimestamp(Tuple2 v, long recordTimestamp) {
                                return v.f1;
                            }
                        })
        );
        DataStream process = watermarks.process(new ProcessFunction, String>() {
            @Override
            public void processElement(Tuple2 value, Context ctx, Collector out) throws Exception {
                if (value.f1 < ctx.timerService().currentWatermark()) {
                    out.collect("元素迟到了" + value);
                } else {
                    out.collect(value + "元素没有迟到!!!");
                }
            }
        });

完整代码

package day05;

import org.apache.flink.api.common.eventtime.SerializableTimestampAssigner;
import org.apache.flink.api.common.eventtime.WatermarkStrategy;
import org.apache.flink.api.common.functions.MapFunction;
import org.apache.flink.api.java.tuple.Tuple2;
import org.apache.flink.streaming.api.datastream.DataStream;
import org.apache.flink.streaming.api.datastream.DataStreamSource;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
import org.apache.flink.streaming.api.functions.ProcessFunction;
import org.apache.flink.util.Collector;

/**
 * @program: bigData_learn
 * @description: 什么是迟到元素
 * @author: Mr.逗
 * @create: 2021-09-24 10:24
 **/
public class LateElement {
    public static void main(String[] args) {
        StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
        env.setParallelism(1);
        DataStreamSource source = env.socketTextStream("172.17.0.50", 9999);
        DataStream> map = source.map(new MapFunction>() {
            @Override
            public Tuple2 map(String s) throws Exception {
                String[] arr = s.split(",");
                return Tuple2.of(arr[0], Long.parseLong(arr[1]) * 1000L);
            }
        });
        DataStream> watermarks = map.assignTimestampsAndWatermarks(
                WatermarkStrategy.>forMonotonousTimestamps()
                        .withTimestampAssigner(new SerializableTimestampAssigner>() {
                            @Override
                            public long extractTimestamp(Tuple2 v, long recordTimestamp) {
                                return v.f1;
                            }
                        })
        );
        DataStream process = watermarks.process(new ProcessFunction, String>() {
            @Override
            public void processElement(Tuple2 value, Context ctx, Collector out) throws Exception {
                if (value.f1 < ctx.timerService().currentWatermark()) {
                    out.collect("元素迟到了" + value);
                } else {
                    out.collect(value + "元素没有迟到!!!");
                }
            }
        });
        process.print();
        String name = LateElement.class.getName();
        try {
            env.execute(name);
        }catch (Exception e)
        {
            e.printStackTrace();
        }
    }
}

结果展示

"C:Program FilesJavajdk1.8.0_191binjava.exe" "-javaagent:F:appIntelliJ IDEA 2019.3.3libidea_rt.jar=50693:F:appIntelliJ IDEA 2019.3.3bin" -Dfile.encoding=UTF-8 -classpath "C:Program FilesJavajdk1.8.0_191jrelibcharsets.jar;C:Program FilesJavajdk1.8.0_191jrelibdeploy.jar;C:Program FilesJavajdk1.8.0_191jrelibextaccess-bridge-64.jar;C:Program FilesJavajdk1.8.0_191jrelibextcldrdata.jar;C:Program FilesJavajdk1.8.0_191jrelibextdnsns.jar;C:Program FilesJavajdk1.8.0_191jrelibextjaccess.jar;C:Program FilesJavajdk1.8.0_191jrelibextjfxrt.jar;C:Program FilesJavajdk1.8.0_191jrelibextlocaledata.jar;C:Program FilesJavajdk1.8.0_191jrelibext
ashorn.jar;C:Program FilesJavajdk1.8.0_191jrelibextsunec.jar;C:Program FilesJavajdk1.8.0_191jrelibextsunjce_provider.jar;C:Program FilesJavajdk1.8.0_191jrelibextsunmscapi.jar;C:Program FilesJavajdk1.8.0_191jrelibextsunpkcs11.jar;C:Program FilesJavajdk1.8.0_191jrelibextzipfs.jar;C:Program FilesJavajdk1.8.0_191jrelibjavaws.jar;C:Program FilesJavajdk1.8.0_191jrelibjce.jar;C:Program FilesJavajdk1.8.0_191jrelibjfr.jar;C:Program FilesJavajdk1.8.0_191jrelibjfxswt.jar;C:Program FilesJavajdk1.8.0_191jrelibjsse.jar;C:Program FilesJavajdk1.8.0_191jrelibmanagement-agent.jar;C:Program FilesJavajdk1.8.0_191jrelibplugin.jar;C:Program FilesJavajdk1.8.0_191jrelibresources.jar;C:Program FilesJavajdk1.8.0_191jrelibrt.jar;G:bigData_learnFlink_learn	argetclasses;G:appapache-maven-3.6.3maven-repositoryorgapacheflinkflink-java1.13.0flink-java-1.13.0.jar;G:appapache-maven-3.6.3maven-repositoryorgapacheflinkflink-core1.13.0flink-core-1.13.0.jar;G:appapache-maven-3.6.3maven-repositoryorgapacheflinkflink-annotations1.13.0flink-annotations-1.13.0.jar;G:appapache-maven-3.6.3maven-repositoryorgapacheflinkflink-metrics-core1.13.0flink-metrics-core-1.13.0.jar;G:appapache-maven-3.6.3maven-repositorycomesotericsoftwarekryokryo2.24.0kryo-2.24.0.jar;G:appapache-maven-3.6.3maven-repositorycomesotericsoftwareminlogminlog1.2minlog-1.2.jar;G:appapache-maven-3.6.3maven-repositoryorgobjenesisobjenesis2.1objenesis-2.1.jar;G:appapache-maven-3.6.3maven-repositorycommons-collectionscommons-collections3.2.2commons-collections-3.2.2.jar;G:appapache-maven-3.6.3maven-repositoryorgapachecommonscommons-compress1.20commons-compress-1.20.jar;G:appapache-maven-3.6.3maven-repositoryorgapachecommonscommons-lang33.3.2commons-lang3-3.3.2.jar;G:appapache-maven-3.6.3maven-repositoryorgapachecommonscommons-math33.5commons-math3-3.5.jar;G:appapache-maven-3.6.3maven-repositoryorgslf4jslf4j-api1.7.15slf4j-api-1.7.15.jar;G:appapache-maven-3.6.3maven-repositorycomgooglecodefindbugsjsr3051.3.9jsr305-1.3.9.jar;G:appapache-maven-3.6.3maven-repositoryorgapacheflinkforce-shading1.13.0force-shading-1.13.0.jar;G:appapache-maven-3.6.3maven-repositoryorgapacheflinkflink-streaming-java_2.121.13.0flink-streaming-java_2.12-1.13.0.jar;G:appapache-maven-3.6.3maven-repositoryorgapacheflinkflink-file-sink-common1.13.0flink-file-sink-common-1.13.0.jar;G:appapache-maven-3.6.3maven-repositoryorgapacheflinkflink-runtime_2.121.13.0flink-runtime_2.12-1.13.0.jar;G:appapache-maven-3.6.3maven-repositoryorgapacheflinkflink-queryable-state-client-java1.13.0flink-queryable-state-client-java-1.13.0.jar;G:appapache-maven-3.6.3maven-repositoryorgapacheflinkflink-hadoop-fs1.13.0flink-hadoop-fs-1.13.0.jar;G:appapache-maven-3.6.3maven-repositorycommons-iocommons-io2.7commons-io-2.7.jar;G:appapache-maven-3.6.3maven-repositoryorgapacheflinkflink-shaded-netty4.1.49.Final-13.0flink-shaded-netty-4.1.49.Final-13.0.jar;G:appapache-maven-3.6.3maven-repositoryorgapacheflinkflink-shaded-jackson2.12.1-13.0flink-shaded-jackson-2.12.1-13.0.jar;G:appapache-maven-3.6.3maven-repositoryorgapacheflinkflink-shaded-zookeeper-33.4.14-13.0flink-shaded-zookeeper-3-3.4.14-13.0.jar;G:appapache-maven-3.6.3maven-repositoryorgjavassistjavassist3.24.0-GAjavassist-3.24.0-GA.jar;G:appapache-maven-3.6.3maven-repositorycom	ypesafeakkaakka-actor_2.122.5.21akka-actor_2.12-2.5.21.jar;G:appapache-maven-3.6.3maven-repositorycom	ypesafeconfig1.3.3config-1.3.3.jar;G:appapache-maven-3.6.3maven-repositoryorgscala-langmodulesscala-java8-compat_2.12.8.0scala-java8-compat_2.12-0.8.0.jar;G:appapache-maven-3.6.3maven-repositorycom	ypesafeakkaakka-stream_2.122.5.21akka-stream_2.12-2.5.21.jar;G:appapache-maven-3.6.3maven-repositoryorgreactivestreamsreactive-streams1.0.2reactive-streams-1.0.2.jar;G:appapache-maven-3.6.3maven-repositorycom	ypesafessl-config-core_2.12.3.7ssl-config-core_2.12-0.3.7.jar;G:appapache-maven-3.6.3maven-repositoryorgscala-langmodulesscala-parser-combinators_2.121.1.1scala-parser-combinators_2.12-1.1.1.jar;G:appapache-maven-3.6.3maven-repositorycom	ypesafeakkaakka-protobuf_2.122.5.21akka-protobuf_2.12-2.5.21.jar;G:appapache-maven-3.6.3maven-repositorycom	ypesafeakkaakka-slf4j_2.122.5.21akka-slf4j_2.12-2.5.21.jar;G:appapache-maven-3.6.3maven-repositoryorgclappergrizzled-slf4j_2.121.3.2grizzled-slf4j_2.12-1.3.2.jar;G:appapache-maven-3.6.3maven-repositorycomgithubscoptscopt_2.123.5.0scopt_2.12-3.5.0.jar;G:appapache-maven-3.6.3maven-repositoryorgxerialsnappysnappy-java1.1.8.3snappy-java-1.1.8.3.jar;G:appapache-maven-3.6.3maven-repositorycom	witterchill_2.12.7.6chill_2.12-0.7.6.jar;G:appapache-maven-3.6.3maven-repositorycom	witterchill-java.7.6chill-java-0.7.6.jar;G:appapache-maven-3.6.3maven-repositoryorglz4lz4-java1.6.0lz4-java-1.6.0.jar;G:appapache-maven-3.6.3maven-repositoryorgapacheflinkflink-shaded-guava18.0-13.0flink-shaded-guava-18.0-13.0.jar;G:appapache-maven-3.6.3maven-repositoryorgapacheflinkflink-clients_2.121.13.0flink-clients_2.12-1.13.0.jar;G:appapache-maven-3.6.3maven-repositoryorgapacheflinkflink-optimizer_2.121.13.0flink-optimizer_2.12-1.13.0.jar;G:appapache-maven-3.6.3maven-repositorycommons-clicommons-cli1.3.1commons-cli-1.3.1.jar;G:appapache-maven-3.6.3maven-repositoryorgapacheflinkflink-table-api-java-bridge_2.121.13.0flink-table-api-java-bridge_2.12-1.13.0.jar;G:appapache-maven-3.6.3maven-repositoryorgapacheflinkflink-table-api-java1.13.0flink-table-api-java-1.13.0.jar;G:appapache-maven-3.6.3maven-repositoryorgapacheflinkflink-table-planner-blink_2.121.13.0flink-table-planner-blink_2.12-1.13.0.jar;G:appapache-maven-3.6.3maven-repositoryorgapacheflinkflink-table-api-scala_2.121.13.0flink-table-api-scala_2.12-1.13.0.jar;G:appapache-maven-3.6.3maven-repositoryorgapacheflinkflink-table-api-scala-bridge_2.121.13.0flink-table-api-scala-bridge_2.12-1.13.0.jar;G:appapache-maven-3.6.3maven-repositoryorgapacheflinkflink-table-runtime-blink_2.121.13.0flink-table-runtime-blink_2.12-1.13.0.jar;G:appapache-maven-3.6.3maven-repositoryorgcodehausjaninojanino3.0.11janino-3.0.11.jar;G:appapache-maven-3.6.3maven-repositoryorgcodehausjaninocommons-compiler3.0.11commons-compiler-3.0.11.jar;G:appapache-maven-3.6.3maven-repositoryorgapachecalciteavaticaavatica-core1.17.0avatica-core-1.17.0.jar;G:appapache-maven-3.6.3maven-repositoryorgapacheflinkflink-streaming-scala_2.121.13.0flink-streaming-scala_2.12-1.13.0.jar;G:appapache-maven-3.6.3maven-repositoryorgapacheflinkflink-scala_2.121.13.0flink-scala_2.12-1.13.0.jar;G:appapache-maven-3.6.3maven-repositoryorgscala-langscala-reflect2.12.7scala-reflect-2.12.7.jar;G:appapache-maven-3.6.3maven-repositoryorgscala-langscala-library2.12.7scala-library-2.12.7.jar;G:appapache-maven-3.6.3maven-repositoryorgscala-langscala-compiler2.12.7scala-compiler-2.12.7.jar;G:appapache-maven-3.6.3maven-repositoryorgscala-langmodulesscala-xml_2.121.0.6scala-xml_2.12-1.0.6.jar;G:appapache-maven-3.6.3maven-repositoryorgapacheflinkflink-table-common1.13.0flink-table-common-1.13.0.jar;G:appapache-maven-3.6.3maven-repositoryorgapacheflinkflink-connector-files1.13.0flink-connector-files-1.13.0.jar;G:appapache-maven-3.6.3maven-repositoryorgapacheflinkflink-shaded-asm-77.1-13.0flink-shaded-asm-7-7.1-13.0.jar;G:appapache-maven-3.6.3maven-repositoryorgapacheflinkflink-cep_2.121.13.0flink-cep_2.12-1.13.0.jar;G:appapache-maven-3.6.3maven-repositoryorgapacheflinkflink-csv1.13.0flink-csv-1.13.0.jar;G:appapache-maven-3.6.3maven-repositoryorgapacheflinkflink-connector-kafka_2.121.13.0flink-connector-kafka_2.12-1.13.0.jar;G:appapache-maven-3.6.3maven-repositoryorgapachekafkakafka-clients2.4.1kafka-clients-2.4.1.jar;G:appapache-maven-3.6.3maven-repositorycomgithublubenzstd-jni1.4.3-1zstd-jni-1.4.3-1.jar;G:appapache-maven-3.6.3maven-repositoryorgapacheflinkflink-connector-base1.13.0flink-connector-base-1.13.0.jar;G:appapache-maven-3.6.3maven-repositoryorgapachebahirflink-connector-redis_2.111.0flink-connector-redis_2.11-1.0.jar;G:appapache-maven-3.6.3maven-repositoryorgapacheflinkflink-streaming-java_2.111.2.0flink-streaming-java_2.11-1.2.0.jar;G:appapache-maven-3.6.3maven-repositoryorgapacheflinkflink-runtime_2.111.2.0flink-runtime_2.11-1.2.0.jar;G:appapache-maven-3.6.3maven-repositoryorgapacheflinkflink-shaded-hadoop21.2.0flink-shaded-hadoop2-1.2.0.jar;G:appapache-maven-3.6.3maven-repositoryorg	ukaanixz1.0xz-1.0.jar;G:appapache-maven-3.6.3maven-repositoryxmlencxmlenc.52xmlenc-0.52.jar;G:appapache-maven-3.6.3maven-repositorycommons-codeccommons-codec1.4commons-codec-1.4.jar;G:appapache-maven-3.6.3maven-repositorycommons-netcommons-net3.1commons-net-3.1.jar;G:appapache-maven-3.6.3maven-repositoryjavaxservletservlet-api2.5servlet-api-2.5.jar;G:appapache-maven-3.6.3maven-repositoryorgmortbayjettyjetty-util6.1.26jetty-util-6.1.26.jar;G:appapache-maven-3.6.3maven-repositorycomsunjerseyjersey-core1.9jersey-core-1.9.jar;G:appapache-maven-3.6.3maven-repositorycommons-elcommons-el1.0commons-el-1.0.jar;G:appapache-maven-3.6.3maven-repositorycommons-loggingcommons-logging1.1.3commons-logging-1.1.3.jar;G:appapache-maven-3.6.3maven-repositorycomjamesmurtyutilsjava-xmlbuilder.4java-xmlbuilder-0.4.jar;G:appapache-maven-3.6.3maven-repositorycommons-langcommons-lang2.6commons-lang-2.6.jar;G:appapache-maven-3.6.3maven-repositorycommons-configurationcommons-configuration1.7commons-configuration-1.7.jar;G:appapache-maven-3.6.3maven-repositorycommons-digestercommons-digester1.8.1commons-digester-1.8.1.jar;G:appapache-maven-3.6.3maven-repositoryorgcodehausjacksonjackson-core-asl1.8.8jackson-core-asl-1.8.8.jar;G:appapache-maven-3.6.3maven-repositoryorgcodehausjacksonjackson-mapper-asl1.8.8jackson-mapper-asl-1.8.8.jar;G:appapache-maven-3.6.3maven-repositoryorgapacheavroavro1.7.7avro-1.7.7.jar;G:appapache-maven-3.6.3maven-repositorycom	houghtworksparanamerparanamer2.3paranamer-2.3.jar;G:appapache-maven-3.6.3maven-repositorycomjcraftjsch.1.42jsch-0.1.42.jar;G:appapache-maven-3.6.3maven-repositorycommons-beanutilscommons-beanutils-bean-collections1.8.3commons-beanutils-bean-collections-1.8.3.jar;G:appapache-maven-3.6.3maven-repositorycommons-daemoncommons-daemon1.0.13commons-daemon-1.0.13.jar;G:appapache-maven-3.6.3maven-repositoryjavaxxmlbindjaxb-api2.2.2jaxb-api-2.2.2.jar;G:appapache-maven-3.6.3maven-repositoryjavaxxmlstreamstax-api1.0-2stax-api-1.0-2.jar;G:appapache-maven-3.6.3maven-repositoryjavaxactivationactivation1.1activation-1.1.jar;G:appapache-maven-3.6.3maven-repositoryio
etty
etty-all4.0.27.Final
etty-all-4.0.27.Final.jar;G:appapache-maven-3.6.3maven-repositorycomdata-artisansflakka-actor_2.112.3-customflakka-actor_2.11-2.3-custom.jar;G:appapache-maven-3.6.3maven-repositorycomdata-artisansflakka-remote_2.112.3-customflakka-remote_2.11-2.3-custom.jar;G:appapache-maven-3.6.3maven-repositoryio
etty
etty3.8.0.Final
etty-3.8.0.Final.jar;G:appapache-maven-3.6.3maven-repositoryorguncommonsmathsuncommons-maths1.2.2auncommons-maths-1.2.2a.jar;G:appapache-maven-3.6.3maven-repositorycomdata-artisansflakka-slf4j_2.112.3-customflakka-slf4j_2.11-2.3-custom.jar;G:appapache-maven-3.6.3maven-repositoryorgclappergrizzled-slf4j_2.111.0.2grizzled-slf4j_2.11-1.0.2.jar;G:appapache-maven-3.6.3maven-repositorycomgithubscoptscopt_2.113.2.0scopt_2.11-3.2.0.jar;G:appapache-maven-3.6.3maven-repositorycomfasterxmljacksoncorejackson-core2.7.4jackson-core-2.7.4.jar;G:appapache-maven-3.6.3maven-repositorycomfasterxmljacksoncorejackson-databind2.7.4jackson-databind-2.7.4.jar;G:appapache-maven-3.6.3maven-repositorycomfasterxmljacksoncorejackson-annotations2.7.0jackson-annotations-2.7.0.jar;G:appapache-maven-3.6.3maven-repositoryorgapachezookeeperzookeeper3.4.6zookeeper-3.4.6.jar;G:appapache-maven-3.6.3maven-repositoryjlinejline.9.94jline-0.9.94.jar;G:appapache-maven-3.6.3maven-repositoryjunitjunit3.8.1junit-3.8.1.jar;G:appapache-maven-3.6.3maven-repositorycom	witterchill_2.11.7.4chill_2.11-0.7.4.jar;G:appapache-maven-3.6.3maven-repositoryorgapacheflinkflink-clients_2.111.2.0flink-clients_2.11-1.2.0.jar;G:appapache-maven-3.6.3maven-repositoryorgapacheflinkflink-optimizer_2.111.2.0flink-optimizer_2.11-1.2.0.jar;G:appapache-maven-3.6.3maven-repositoryorgapacheslingorg.apache.sling.commons.json2.0.6org.apache.sling.commons.json-2.0.6.jar;G:appapache-maven-3.6.3maven-repositorymysqlmysql-connector-java8.0.21mysql-connector-java-8.0.21.jar;G:appapache-maven-3.6.3maven-repositorycomgoogleprotobufprotobuf-java3.11.4protobuf-java-3.11.4.jar;G:appapache-maven-3.6.3maven-repositoryorgapacheflinkflink-connector-jdbc_2.121.13.0flink-connector-jdbc_2.12-1.13.0.jar;G:appapache-maven-3.6.3maven-repositoryorgslf4jslf4j-log4j121.7.30slf4j-log4j12-1.7.30.jar;G:appapache-maven-3.6.3maven-repositorylog4jlog4j1.2.17log4j-1.2.17.jar;G:appapache-maven-3.6.3maven-repositoryorgapachelogginglog4jlog4j-to-slf4j2.14.0log4j-to-slf4j-2.14.0.jar;G:appapache-maven-3.6.3maven-repositoryorgapachelogginglog4jlog4j-api2.14.0log4j-api-2.14.0.jar;G:appapache-maven-3.6.3maven-repositoryredisclientsjedis2.9.0jedis-2.9.0.jar;G:appapache-maven-3.6.3maven-repositoryorgapachecommonscommons-pool22.4.2commons-pool2-2.4.2.jar;G:appapache-maven-3.6.3maven-repositorycomgooglecodegsongson2.8.5gson-2.8.5.jar" day05.LateElement
log4j:WARN No appenders could be found for logger (org.apache.flink.api.java.ClosureCleaner).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
(a,10000)元素没有迟到!!!
(b,11000)元素没有迟到!!!
展开阅读全文

页面更新:2024-05-20

标签:元素   关键   代码   科技

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top