热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

小白学习Flink系列第一篇(知识图谱)

小白学习Flink系列–第一篇(知识图谱)

如何学习Flink?

​ 对于一门计算机技术来说,如何快速学习上手呢?具体的逻辑是什么呢?我认为有以下几条

  • 了解技术的应用场景
  • 技术的基本概念,如何使用,以及如何部署(针对大数据组件而言)
  • 技术的功能特点
  • 技术源码,优缺点

小白学习Flink系列--第一篇(知识图谱)

知识图谱详解

核心概念

  • Flink的核心概念实际上是流式处理的概念,对于流式数据来说最重要的就是时间

  • Time类型

    • Processing Time
    • Event Time
    • Ingestion Time
  • Watermark 这是Flink的一个难点,在此我想强调的是很多人翻译为水印,对新手有误导作用,译做水位更为合理,Watermark实质上就是一个时间戳,具体场景可以简化为如何处理迟到的数据,由于在分布式环境下,会受到网络等影响,数据并不能按时到达,于是就有了watermark机制,在此做简单说明,图谱每个节点我都会出详细文章说明,对于小白而言,我们首先要了解的是这个东西到底是干什么的,而不是一头扎进去研究,了解—应用–剖析是一个更合理的路线

  • Trigger 触发器又是什么呢?上文中提到watermark是为了迟到的数据,触发器实际上是决定数据处理完后什么时候落地的

  • State

    • 什么是状态?这其实是流式数据的特性,计算数据处理的中间结果,举个例子,agg操作中state会记录中间聚合的结果
    • 为什么需要有? 记录状态的目的是为了恢复或者重启任务,试想一下,流数据任务过程突然挂了怎么办?有了中间的结果记录,不久能够做到快速恢复任务?
  • 区别(面试常问)

    • 核心:Flink是标准的流式处理引擎,基于数据驱动,把批处理看作流处理的一种特殊情况,Spark恰恰相反,Spark是微批处理模型,把***的流处理划分为一个一个的阶段,缩小为一系列的批次,有一个形象的比喻,对于微积分来说,就是划分为一个一个有界的面积进行逼近计算的。
    • 架构:Spark是Driver master worker executor,Flink则是JobManager TaskManager Client
    • 时间:Spark只支持处理时间,Flink支持处理事件,事件时间,注入时间,同时有watermark处理滞后数据
    • 容错【大数据核心】:Spark无法做到仅消费一次,Flink可以做到

    特性

    特性分为两点,API和架构

    • 对于数据处理引擎来说,我们需要解决的问题就是计算,所以核心就是在哪进行计算?计算任务如何找到相应的资源,这就是架构做的事情,核心就是 资源和任务的匹配

    • API,老生常谈就是对数据进行的操作,毕竟谁不是调参小能手呢

      小白学习Flink系列--第一篇(知识图谱)

      • SQL/Table API :

        Table API 和 SQL 借助了 Apache Calcite 来进行查询的解析,校验以及优化。它们可以与 DataStream 和 DataSet API 无缝集成,并支持用户自定义的标量函数,聚合函数以及表值函数。

      • DataStream API

        DataStream API 为许多通用的流处理操作提供了处理原语。这些操作包括窗口、逐条记录的转换操作,在处理事件时进行外部数据库查询等

      • ProcessFunction

        是 Flink 所提供的最具表达力的接口。ProcessFunction 可以处理一或两条输入数据流中的单个事件或者归入一个特定窗口内的多个事件。它提供了对于时间和状态的细粒度控制

      • 是否有些深奥?这三者的区别在哪里?在这里可以简单的认为DataStream是ProcessFunction封装好的黑盒操作,通过提供一些已经写好的算子,用户直接调用就可以,但缺点也是显而易见的,它并不能满足所有自定义的需求,也就是无法细粒度的处理,这时候就需要实现底层的ProcessFunction

      • Task 真正干活的单位,经过一系列请求过后,Task匹配到资源执行,我们知道,大数据之一就是体现在数据量大,那么对于巨大的数据量来说,就出现了一下几个问题

        • 如何划分Task呢?
        • Task的多少和什么有关的?
        • Task挂了怎么办?如何恢复任务呢

    状态

    • 什么是状态?这也是初学者最容易懵逼的地方
    • 状态有哪些种类,存在哪?谁又在管理状态呢?这就是状态管理 状态存储 状态种类
    • 区别?种类多种,管理方式多样,存储介质多种,区别在哪里?如何选择?
    • 状态的用途呢?存储干嘛?这就牵扯到上文我们提到了疑问,Task挂了怎么办呢?这就牵扯到状态容错
    • 状态容错的机制是什么?checkpoint?那checkpoint的底层实现又是什么呢?

    libraries

    这里的重难点是CEP

    • 什么是CEP? CEP是Flink相当nice的功能,它的语义是复杂事件处理,什么,听不懂?举个例子

      对于常见的电商平台,是根据用户停留时长,收藏,加购,点击次数来判断用户是否喜欢这个东西,那我们如何定义满足这一条件的函数呢?CEP就派上了用场

    • Gelly图处理 对于初学者来说其实没必要涉及

    监控

    对于大数据组件来说,长链路如何确保整个环节都没有问题呢?那就需要监控出马了,点一点,看看web UI就可以更直观的看到任务运行情况,方便定位数据处理过程中的问题

源码解析(吹牛篇)

众所周知,面试官最喜欢的就是问你,熟悉某个技术的源码吗?熟悉源码对于面试来说是有相当的优势,功利性来说,源码对于初学者的用途更多在于面试,在这个模块,我将会列出Flink源码解析的例子,帮助大家了解源码【吹牛】

落地实践

你会Spark Flink Hadoop,精通源码,但一问到如何针对应用场景进行方案设计,就傻眼了,我就只会写SQL,写scala代码,统计指标,这远远是不够的,技术是为业务服务的,没有业务也就何谈什么技术?这一章我会据一些具体公司实践已经常见的应用场景

总结

这只是一个思维导图,也就是个启蒙贴,以疑问为主,主要是为了让大家思考为什么这样做?这些年见多很多的面试者,背书很溜,原理也能巴拉巴拉说出来,一问道为什么这样做就傻眼了,这多半是面经看多了,面试造火箭,入职只会拧螺丝 。只有知道why才能更好做到 对技术的理解

​ 接下来,我会为大家更新思维导图知识点的详细扩展,希望大家支持丫

福利

看书看不懂怎么办?学习视频安排!

没有实践项目只会Demo怎么办?实践项目安排!

面试好慌怎么办?面经大全安排!

扫描下方关注,点击联系我,添加vx即可获取Flink大礼包!!

悄悄说一下,有找不到的学习资源也可以私信答主,毕竟我是行走的资源库
小白学习Flink系列--第一篇(知识图谱)


推荐阅读
  • 什么是大数据lambda架构
    一、什么是Lambda架构Lambda架构由Storm的作者[NathanMarz]提出,根据维基百科的定义,Lambda架构的设计是为了在处理大规模数 ... [详细]
  • 【转】腾讯分析系统架构解析
    TA(TencentAnalytics,腾讯分析)是一款面向第三方站长的免费网站分析系统,在数据稳定性、及时性方面广受站长好评,其秒级的实时数据更新频率也获得业界的认可。本文将从实 ... [详细]
  • 《Spark核心技术与高级应用》——1.2节Spark的重要扩展
    本节书摘来自华章社区《Spark核心技术与高级应用》一书中的第1章,第1.2节Spark的重要扩展,作者于俊向海代其锋马海平,更多章节内容可以访问云栖社区“华章社区”公众号查看1. ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • Hadoop源码解析1Hadoop工程包架构解析
    1 Hadoop中各工程包依赖简述   Google的核心竞争技术是它的计算平台。Google的大牛们用了下面5篇文章,介绍了它们的计算设施。   GoogleCluster:ht ... [详细]
  • mapreduce源码分析总结
    这篇文章总结的非常到位,故而转之一MapReduce概述MapReduce是一个用于大规模数据处理的分布式计算模型,它最初是由Google工程师设计并实现的ÿ ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • 本文介绍了绕过WAF的XSS检测机制的方法,包括确定payload结构、测试和混淆。同时提出了一种构建XSS payload的方法,该payload与安全机制使用的正则表达式不匹配。通过清理用户输入、转义输出、使用文档对象模型(DOM)接收器和源、实施适当的跨域资源共享(CORS)策略和其他安全策略,可以有效阻止XSS漏洞。但是,WAF或自定义过滤器仍然被广泛使用来增加安全性。本文的方法可以绕过这种安全机制,构建与正则表达式不匹配的XSS payload。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 云原生应用最佳开发实践之十二原则(12factor)
    目录简介一、基准代码二、依赖三、配置四、后端配置五、构建、发布、运行六、进程七、端口绑定八、并发九、易处理十、开发与线上环境等价十一、日志十二、进程管理当 ... [详细]
  • [翻译]微服务设计模式5. 服务发现服务端服务发现
    服务之间需要互相调用,在单体架构中,服务之间的互相调用直接通过编程语言层面的方法调用就搞定了。在传统的分布式应用的部署中,服务地 ... [详细]
  • ZooKeeper 学习
    前言相信大家对ZooKeeper应该不算陌生。但是你真的了解ZooKeeper是个什么东西吗?如果别人面试官让你给他讲讲ZooKeeper是个什么东西, ... [详细]
  • 后台自动化测试与持续部署实践
    后台自动化测试与持续部署实践https:mp.weixin.qq.comslqwGUCKZM0AvEw_xh-7BDA后台自动化测试与持续部署实践原创 腾讯程序员 腾讯技术工程 2 ... [详细]
author-avatar
江南西道longge
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有