流/批/OLAP一体的Flink引擎|青训营笔记

52 阅读4分钟

这是我参与「第四届青训营 」笔记创作活动的第2天。本节课程当中老师主要讲了以下四个方面:

  1. Apache Flink概述;
  2. 流批一体的Apache Flink架构;
  3. Apache Flink的OLAP场景面临的问题及优化思路;
  4. Flink使用案例

课前、课中、课后我主要学到了以下几个知识点:

1. 大数据技术的历史

  •    随着ABC时代的到来各个互联网巨头都在调整组织架构,为应对已经到来的产业趋势和技术变革,这已经表示着一个全新的时代已经来临。随着这股趋势,最近几年大数据这个词也在诸多技术大会上越来越多的被提及。人们用它来描述和定义信息时代产生的海量数据,并命名与之相关的技术发展和创新。最早提出大数据时代到来的是全球知名咨询公司麦肯锡,其实大数据在物理学、生物学、环境生态学等领域以及军事、金融、通讯等行业存在已有时日,只是近年来互联网和IT行业的发展而引起人们的关注。
    
  • 根据研究机构Gartner给出的定义:大数据是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力来适应海量、高增长率和多样化的信息资产。大数据技术的战略意义不在于掌握庞大的数据信息,而在于对这些含有意义的数据进行专业化处理。
    
  • 被誉为“大数据商业应用第一人”的维克托·迈尔·舍恩伯格认为大数据是指不用随机分析法(比如抽样调查)这样的捷径,而是采用对所有数据进行分析处理的方式,大数据的核心就是预测,它将为人类的生活创造前所未有的可量化的维度。他认为大数据时代最大的转变就是,放弃对因果关系的渴求,而取而代之关注相关关系。也就是说只要知道“是什么”,而不需要知道“为什么”。这就颠覆了千百年来人类的思维惯例,对人类的认知和与世界交流的方式提出了全新的挑战。
    
  • 所有这些不同跨行业的技术飞跃,都是基于大数据的发展为其奠定的坚实基础。技术的进步将继续通过更智能的流程帮助我们创造出一个更美好的社会。我们必须充分了解这种技术的使用方式,以及腰实现具体的业务目标,二者结合才能最终从这些趋势中受益。这些都只是一个开始,大数据将继续作为我们在业务和技术方面所经历变革的催化剂。我们可以做的是思考如何有效地适应这些变化,并利用这项技术实现业务蓬勃发展。
    

2. 流式计算的概念

  • Unbounded/Bounded vs Streaming/Batch

       在 Dataflow 之前,对于有限/无限数据集合的描述,一般使用批/流 (Batch/Streaming),总有一种暗示底层两套引擎(批处理引擎和流处理引擎)。对于批处理和流处理,一般情况下是可以互相转化的,比如 Spark 用微批来模拟流。而 Dataflow 模型一般将有限/无限数据集合称为 Bounded/Unbounded Dataset,而 Streaming/Batch 用来特指执行引擎。
    
  • Window

      Window,也就是窗口,将一部分数据集合组合起操作。在处理无限数据集的时候有限操作需要窗口,比如 aggregation,outer jointime-bounded 操作。窗口大部分都是基于时间来划分,但是也有基于其他存在逻辑上有序关系的数据来划分的。窗口模型主要由三种:Fixed Window,Sliding Window,Session Window

3. Apache Flink什么

Apache Flink是一个框架和分布式处理引擎,用于对无限和有界数据流进行有状态计算。Flink旨在在所有常见的集群环境中运行,以内存速度任何规模执行计算。

  • Apache Flink擅长处理无界和有界数据集。

  • 在任何地方部署应用程序

  • 以任何规模运行应用程序

  • 利用内存性能

4. 流批一体的Apache Flink架构

  • Flink架构的概念:
    1. JobManager、TaskManager;
    2. Task、Slot、Operator;
    3. Dataflow、DAG、JobGraph;
  • 分布式计算系统的概念:
    1. 调度器;
    2. Shuffle Service;
    3. HA;
    4. Failover Recovery;
  • 流批一体:
    1. 流式计算
    2. 批式计算

本次笔记借鉴了“预流”的“大数据技术简介”的文章[(juejin.cn/post/684490…) ]