本文将介绍如何通过
和Spark一样,
和Spark一样,Flink和Kafka整合的相关API也没有打包进Flink包中,而是单独进行了打包;所以如果我们需要在Flink中使用到Kafka,需要将这个包引入到我们的pom.xml文件中。本文以Flink 1.0.0和Scala 2.10.x为例进行说明,我们将下面的依赖引入到pom.xml文件中:
org.apache.flink
flink-connector-kafka-0.8_2.10
1.0.0
当然,在读取Kafka中的数据之前,需要确保你已经安装和部署好Kafka集群了,这里我就不介绍如何部署Kafka集群,可以参见:《Kafka分布式集群部署手册(一)》、《Kafka分布式集群部署手册(二)》
Kafka Consumer
我们需要编写一个Kafka Consumer,通过Flink计算引擎从Kafka相应的Topic中读取数据。在Flink中,我们可以通过FlinkKafkaConsumer08来实现,这个类提供了读取一个或者多个Kafka Topic的机制。它的构造函数接收以下几个参数:
1、topic的名字,可以是String(用于读取一个Topic)List(用于读取多个Topic);
2、可以提供一个DeserializationSchema/ KeyedDeserializationSchema用于反系列化Kafka中的字节数组;
3、Kafka consumer的一些配置信息,而且我们必须指定bootstrap.servers、zookeeper.connect(这个属性仅仅在Kafka 0.8中需要)和group.id属性。
好