资源
【1】flink官方下载:http://flink.apache.org/downloads.html#apache-flink-1140
【2】Flink从入门到真香(16、Flink内置的一些Process Function):https://blog.51cto.com/mapengfei/2554673
自定义分区
import org.apache.flink.api.common.functions.Partitioner;import org.apache.flink.api.java.tuple.Tuple2;import org.apache.flink.streaming.api.datastream.DataStream;import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;import java.util.Arrays;public class PartitionerTest {public static void main(String[] args) throws Exception {StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();DataStream dataStream = env.fromCollection(Arrays.asList(new Tuple2<String, Long>("1", 1L),new Tuple2<String, Long>("2", 2L),new Tuple2<String, Long>("3", 3L),new Tuple2<String, Long>("4", 4L)));DataStream partitionData = dataStream.partitionCustom(new MyPartitioner(), 1);// 分区数和并行度有关,并行度要大于等于当前数据可以分区的个数partitionData.print().setParallelism(2);env.execute("PartitionerTest");}}class MyPartitioner implements Partitioner<Long> {@Overridepublic int partition(Long s, int i) {System.out.println("s = " + s + "i = " + i);if(s % 2 == 0) {return 0;} else {return 1;}}}====> 输出s = 1i = 2s = 2i = 2s = 3i = 2s = 4i = 21> (2,2)2> (1,1)1> (4,4)2> (3,3)
