大数据开发-Flink-Flink简介和入门

本文介绍了Apache Flink在大数据处理中的重要地位,重点讲解了Flink的核心模块,包括Deploy层、Core层和APIs & Libraries层。讨论了Flink的流处理模式,如无限流处理、有限流处理和有状态的流处理,并对比了与其他流处理引擎的选型建议。此外,还提供了Flink的入门实践,通过Scala和Java版本的批处理和流处理案例展示了WordCount的实现。
摘要由CSDN通过智能技术生成

Flink作为大数据生态中重要的一个组件,现在在实时流处理方面占据着很重要的地位,其实时流处理方面支持基于事件的时间流处理方式,另外也推荐流批一体化,而现在处理实时数据较常用的架构 Flink + Kafka,当然市面上的流处理引擎不止Flink一种,其他的比如Storm、SparkStreaming、Trident等,实际应用时如何进行选型,下面是一些建议参考

  • 流数据要进行状态管理,选择使用Trident、Spark Streaming或者Flink

  • 消息投递需要保证At-least-once(至少一次)或者Exactly-once(仅一次)不能选择Storm

  • 对于小型独立项目,有低延迟要求,可以选择使用Storm,更简单

  • 如果项目已经引入了大框架Spark,实时处理需求可以满足的话,建议直接使用Spark中的Spark Streaming

  • 消息投递要满足Exactly-once(仅一次),数据量大、有高吞吐、低延迟要求,要进行状态管理或窗口统计,建 议使用Flink,也越来越被各大公司所实践

1.Flink简介

Apache Flink是一个框架和分布式处理引擎,用于对无界和有界数据流进行有状态计算。Flink被设计在所有常见的集群环境中运行,以内存执行速度和任意规模来执行计算,Flink 是一个开源的流处理框架,它具有以下特点

  • 批流一体:统一批处理、流处理

  • 分布式:Flink程序可以运行在多台机器上

  • 高性能:处理性能比较高

  • 高可用:Flink支持高可用性(HA)

  • 准确:Flink可以保证数据处理的准确性

2.Flink核心模块组成

首先,类比Spark, 我们来看Flink的模块划分

file

Deploy层

可以启动单个JVM,让Flink以Local模式运行Flink也可以以Standalone 集群模式运行,同时也支持Flink ON YARN,Flink应用直接提交到YARN上面运行Flink还可以运行在GCE(谷歌云服务)和EC2(亚马逊云服务)

Core层(Runtime)

在Runtime之上提供了两套核心的API,DataStream API(流处理)和DataSet API(批处理)

APIs & Libraries层

核心API之上又扩展了一些高阶的库和API

  • CEP流处理

  • Table API和SQL

  • Flink ML机

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值