flink 写kafka_Flink1.9整合Kafka实战

1d9467f1b9dff5b9d3c3b3a391c2d39d.png

大数据技术与架构 点击右侧关注,大数据开发领域最强公众号! 34fbb666f83865e95218e6b0ca7c4210.png

cc2dea6b37e77fb2f7e2e06cbe8f5321.png

暴走大数据 点击右侧关注,暴走大数据! 90b128e5cb772038146cf6fe2114d66f.png

本文基于Flink1.9版本简述如何连接Kafka。

流式连接器

0c82a9438bab40efb8f987ce0d4f3b69.png

我们知道可以自己来开发Source 和 Sink ,但是一些比较基本的 Source 和 Sink 已经内置在 Flink 里。

预定义的source支持从文件、目录、socket,以及 collections 和 iterators 中读取数据。

预定义的sink支持把数据写入文件、标准输出(stdout)、标准错误输出(stderr)和 socket。

连接器可以和多种多样的第三方系统进行交互。目前支持以下系统:

  • Apache Kafka

  • Apache Cassandra(sink)

  • Amazon Kinesis Streams(source/sink)

  • Elasticsearch(sink)

  • Hadoop FileSystem (sink)

  • RabbitMQ(source/sink)

  • Apache NiFi(source/sink)

  • Twitter Streaming API(source)

请记住,在使用一种连接器时,通常需要额外的第三方组件,比如:数据存储服务器或者消息队列。

Apache Bahir 中定义了其他一些连接器

  • Apache ActiveMQ(source/sink)

  • Apache Flume(sink)

  • Redis(sink)

  • Akka (sink)

  • Netty (source)

使用connector并不是唯一可以使数据进入或者流出Flink的方式。一种常见的模式是从外部数据库或者 Web 服务查询数据得到初始数据流,然后通过 Map 或者 FlatMap 对初始数据流进行丰富和增强,这里要使用Flink的异步IO。

而向外部存储推送大量数据时会导致 I/O 瓶颈问题出现。在这种场景下,如果对数据的读操作远少于写操作,可以让外部应用从 Flink 拉取所需的数据,需要用到Flink的可查询状态接口。

本文重点介绍Apache Kafka Connector

Kafka连接器

此连接器提供对Apache Kafka提供的事件流的访问。

Flink提供特殊的Kafka连接器,用于从/向Kafka主题读取和写入数据。Flink Kafka Consumer集成了Flink的检查点机制,可提供一次性处理语义。为实现这一目标,Flink并不完全依赖Kafka 的消费者组的偏移量,而是在内部跟踪和检查这些偏移。

下表为不同版本的kafka与Flink Kafka Consumer的对应关系。

Maven Dependency Supported since Consumer and Producer Class name Kafka version
flink-connector-kafka-0.8_2.11 1.0.0 FlinkKafkaConsumer08 FlinkKafkaProducer08 0.8.x
flink-connector-kafka-0.9_2.11 1.0.0 FlinkKafkaConsumer09 FlinkKafkaProducer09 0.9.x
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值