flink流处理demo

flink流处理demo

import org.apache.flink.api.common.functions.FoldFunction;
import org.apache.flink.api.java.functions.KeySelector;
import org.apache.flink.api.java.tuple.Tuple2;
import org.apache.flink.streaming.api.datastream.DataStream;
import org.apache.flink.streaming.api.datastream.KeyedStream;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
import org.apache.flink.streaming.api.windowing.time.Time;
import org.apache.flink.streaming.connectors.wikiedits.WikipediaEditEvent;
import org.apache.flink.streaming.connectors.wikiedits.WikipediaEditsSource;

public class KafkaMessageStreaming {

    static private StreamExecutionEnvironment see;

    public static void main(String[] args) throws Exception {

        see = StreamExecutionEnvironment.getExecutionEnvironment();
        DataStream edits = see.addSource(new WikipediaEditsSource());
        KeyedStream keyedEdits = edits
                .keyBy(new KeySelector() {
                    @Override
                    public String getKey(WikipediaEditEvent event) {
                        return event.getUser();
                    }
                });

        DataStream> result = keyedEdits
                .timeWindow(Time.seconds(5))
                .fold(new Tuple2<>("", 0L), new FoldFunction>() {
                    @Override
                    public Tuple2 fold(Tuple2 acc, WikipediaEditEvent event) {
                        System.out.println("+++++++++++++++");
                        System.out.println(event.toString());

                        acc.f0 = event.getUser();
                        acc.f1 += event.getByteDiff();
                        return acc;
                    }
                });

        result.print();
        see.execute();
    }
}


	4.0.0

	wiki-edits
	flink
	1.0-SNAPSHOT
	
		1.4.2
	
	

		
			org.apache.flink
			flink-clients_2.11
			${flink.version}
		
		
			org.apache.flink
			flink-connector-wikiedits_2.11
			${flink.version}
		

		
			org.apache.flink
			flink-connector-kafka-0.8_2.11
			${flink.version}
		
		
			org.apache.flink
			flink-streaming-java_2.11
			${flink.version}
		
		
			org.apache.flink
			flink-java
			${flink.version}
		

		
			org.apache.flink
			flink-cep_2.11
			${flink.version}
		

		
			com.alibaba
			fastjson
			1.2.37
		

		
		
			org.apache.logging.log4j
			log4j-slf4j-impl
			2.11.1
		


	

	
		
			
				org.apache.maven.plugins
				maven-shade-plugin
				3.0.0
				
					
						package
						
							shade
						
						
							
								
									com.google.code.findbugs:jsr305
									org.slf4j:*
									log4j:*
								
							
							
								
									
									*:*
									
										META-INF/*.SF
										META-INF/*.DSA
										META-INF/*.RSA
									
								
							
							
								
									KafkaMessageStreaming
								
							
						
					
				
			
			
				org.apache.maven.plugins
				maven-compiler-plugin
				
					1.7
					1.7
				
			
		
	

你可能感兴趣的:(flink流处理demo)