Flink代码及ui界面应用

本文对比了Flink与Spark的优劣,深入解析Flink的底层机制和运用场景。详细介绍了Flink代码的maven配置、source、transform及sink模块,以及如何通过命令行和Flink Web UI执行job,包括日志查看方法。
摘要由CSDN通过智能技术生成

Flink和Spark各自优劣

底层机制
Spark

Spark的数据模型是弹性分布式数据集 RDD,这个内存数据结构使得spark可以通过固定内存做大批量计算。初期的Spark Streaming是通过将数据流转成批(micro-batches),即收集一段时间(time-window)内到达的所有数据,并在其上进行常规批处,所以严格意义上,还不能算作流式处理。但是Spark从2.x版本开始推出基于 Continuous Processing Mode的 Structured Streaming,支持按事件时间处理和端到端的一致性,但是在功能上还有一些缺陷,比如对端到端的exactly-once语义的支持

image
Spark DAG示意图

Flink

Flink是统一的流和批处理框架,基本数据模型是数据流,以及事件(Event)的序列,Flink从设计之初秉持了一个观点:批是流的特例。每一条数据都可以触发计算逻辑,那么Flink的流特性已经在延迟方面占得天然优势。
image
Flink workflow示意图

运用
API Spark Flink
底层api RDD Process Function
核心api DataStream/DataSet/Structured Stream DataStream/DataSet
SQL Spark SQL Table Api&SQL
机器学习 MLlib FlinkML
图计算 Graph Gelly
其他 CEP
支持语言
支持语言 Spark Flink
java
scala
python
R ×(需要第三方)
SQL

Flink运行代码

主要分成三部分

  • 1、source模块
  • 2、transform模块
  • 3、sink模块
maven配置
<properties>
    <scala.version>2.11.8</scala.version>
    <scala.binary.version>2.11</scala.binary.version>
    <flink.version>1.10.0</flink.version>
    <hbase.version>2.0.2</hbase.version>
  </properties>



  <dependencies>
    <!--flink-->

    <dependency>
      <groupId>org.apache.kafka</groupId>
      <artifactId>kafka-clients</artifactId>
      <version>2.0.0</version>
    </dependency>

    <dependency>
      <groupId>org.apache.flink</groupId>
      <artifactId>flink-streaming-scala_2.11</artifactId>
      <version>${flink.version}</version>
      <scope>compile</scope>
    </dependency>

      <dependency>
        <groupId>org.apache.flink</groupId>
        <artifactId>flink-connector-kafka_2.11</artifactId>
        <version>${flink.version}</version>
      </dependency>

    <dependency>
      <groupId>org.apache.flink</groupId>
      <artifactId>flink-clients_2.11</artifactId>
      <version>${flink.version}</version>
  </dependency>

 <!--     <dependency>
          <groupId>org.apache.flink</groupId>
          <artifactId>flink-sql-client_2.11</artifactId>
          <version>${f
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jarvis数据之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值