Flink for java之五:自定义source/sink


附上之前算子串烧时的图,之前讲解的是中间的Transformations,本文探讨一下Source和Sink,例子用Source,Sink类似。

1  预定义Source和Sink

直接使用,无需引入额外的依赖,一般用于测试、调试

1.1 基于文件

代码:

文件1.txt

输出:

1.2 基于socket

代码:

socket:

输出:


1.3 基于Elements

1.3.1 GenerateSequence

输出:


1.3.2 FromElements

输出:


1.4 基于Collections

1.4.1 FromCollection

输出:


1.5 自定义source

1.5.1 实现SourceFunction接口

需要实现run、cancel两个方法,非并行,并行度为1

输出:

1.5.2 实现ParallelSourceFunction

输出:


1.5.3 继承RichSourceFunction

输出:


1.5.4 继承RichParallelSourceFunction

输出:


2 捆绑的Connectors

需要专门引入对应的jar包,以实现外部数据进出Flink,如

1)Apache Flink(source/sink)

2)Apache Cassandra(source/sink)

3)Elasticsearch(sink)

4)Hadoop FileSystem/HDFS(sink)

5)RabbitMQ(source/sink)

6)Apache NiFi(source/sink)

7)Twitter Steaming API(source)

2.1 Kafka作为Source,Sink到MySQL

Step1:配置MySQL连接

Step2:启动工程,等待从Kafka生产过来的数据,然后消费

启动工程之前,要先启动zookeeper和kafka

Step3:调用Kafka API生产数据


Step4:数据sink到MySQL存储


3 Apache Bahir

可以到官网查看,本文不展开。

你可能感兴趣的:(Flink for java之五:自定义source/sink)