Flink快速入门一(简介以及WC编程)

1、什么是Flink

Flink是架构在有界无界流数据上的有状态的分布式计算引擎,既可以处理流数据又可以处理批数据(批是流的特例)

1.1 有界无界流
  • Unbounded streams:无界流,即流数据,定义了开始,没有定义结束
  • Bounded streams:界流,即批数据,定义了开始以及结束。
    将连续的批处理放大即是流处理
1.2 部署模式

Flink可以部署在 Hadoop YARN,Apache Mesos,Kubernetes ,Stand-alone ,Cloud ,Local,和Spark很类似,同Spark一样 on yarn模式 是没有HA的,只作为一个提交程序的客户端。 Stand-alone 模式必须要有部署HA。同一份代码可以在任何环境运行! 无需更改,开发学习的过程使用local 模式即可

2.Flink的编程模型

2.1编程模型从低到高如下所示:

Stateful streaming process (low) =》DataStream / DataSet API (Core) =》Table API =》SQL

  • DataStream API:处理无界数据
  • DataSet API:处理有界数据
2.2Time
  • Event Time:数据产生的时间
  • Ingestion time:数据摄入的时间,即数据进入Flink
  • Processing Time:数据处理时间
2.2 常见的计算引擎编程过程

MapRreduce: input ==> map(reduce) ==> output
Spark : input ==> transformations ==> actions ==> output
Storm : input ==>Spout ==>Bolt ==> output
Flink : source ==> transformations ==> sink

3.Flink vs Spark Streaming vs Structured Streaming vs Strom(基本/trident) 简单对比

Strom(基本)是实时流计算, Storm(trident)是微批次计算。storm已过时。

  • 实时性:Flink 、Storm、Structured Streaming 是真实时流处理,而Spark是微批次处理
  • 延时性:Flink 、Storm 、Structured Streaming 延时较低,Spark延时较高
  • 吞吐量: Storm(基本)吞吐量最低

4.WC编程案例

相较于java,使用scala进行编程使得代码更加优美,简洁。编程五步走,非常的有规则的编程。
注意:Flink加载数据以及transformation操作是lazy的,当执行execute时才会真正的触发执行。

4.1依赖的pom.xml文件
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.wsk.flink</groupId>
  <artifactId>flink-train</artifactId>
  <version>1.0-SNAPSHOT</version>
  <inceptionYear>2008</inceptionYear>
  <properties>
    <scala.version>2.11.8</scala.version>
    <flink.version>1.8.1</flink.version>
    <scala.binary.version>2.11</scala.binary.version>
  </properties>

  <repositories>
    <repository>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    </repository>
    
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值