| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> flink入门基础知识整理(持续更新) -> 正文阅读 |
|
[大数据]flink入门基础知识整理(持续更新) |
目录 1.入门概念1.1 核心特点按照老中少三代来区分大数据框架,老一代为 处理流式数据的storm,中一带为 处理批式数据的hadoop、spark(微批为流),少一代为 本文章描述的 flink,自从阿里接管 flink 的开源后,今天的 flink已经已经十分强大,兼有 批流一体、高容错、高吞吐低延迟、大规模计算、多平台部署等核心特点 1.1.1 批流数据??????? 传统的大数据理解中,数据源源不断的产生,没有终止,同时也积累的许多。针对以上,源源不断的来的即为流式数据(无界数据),积累的一批为批式数据(有界数据)。批数据除了是已经产生的数据,还可以由流式数据作一定规则的细分截取产生。具体的的应用 应视情况而定,可以针对流式数据作聚合操作,也可以等攒齐了 一次性操作。Flink同时支持对流式数据操作和批示数据操作,且强于以上框架。 1.1.2 容错能力??????? Flink容错能力主要有三种:依赖于集群管理、依赖于协调组件、依赖于自身快照机制 一:集群管理 ??????? Flink支持多平台部署,其中k8s之类的容器集群管理平台本身自带当进程挂掉时,重启新进程接管工作的功能。 二:协调组件 ??????? Flink可通过相应配置开启HA模式,依赖于Zookeeper的分布式协调服务。 三:快照机制 ??????? Flink通过设计检查点和状态存储,来保证重启后可接着上次断点后继续工作。 1.1.3 高吞吐低延迟??????? Flink除了在计算、传输、序列化做了优化外,得益于本身的快照机制,不依赖会产生阻塞的调度,从而可以持续处理数据 1.1.4 大规模复杂计算??????? 计算方面也得益于 flink本身的容错机制和状态存储设置,可以使 flink已聚合的方式逐批处理数据,并聚合保存之前和现有的状态 于本地内存中(数据是否共享有待研究,个人觉得是共享的 ),如此一来可以极大的降低大数据的调度】管理等 1.1.5 多平台部署??????? 和其他常见组件或应用一样,flink支持 容器化部署、云部署等 ?2.API 介绍2.1 ?API层次
这四层关系很好理解,上层是下层的通用性封装,若不满足个性化需求场景,可自己根据下层api自定义开发,但最低为状态流的处理。 2.2??DataStream体系
2.3??数据读取(Source)这是flink流计算的起点, 第一个DataStream由此产生,主要有四种方式:内存读取、文件读取、socket读取、自定义 2.3.1? 内存读取主要是从 各种本地的数据结构中读取数据方法一般为 from开头,如 fromElements()、formCollection()、等 2.3.2? 文件读取主要是从本地文件读取, 除了自定义IO流之外,flink也封装了一系列的方法, 主要是以read 开头的方法 如readTextFlie()、readFile()等。读取模式分为一次性读取或持续读取两种吗,一般默认一次性读取。 2.3.3? SOCKET接入主要从网络端口获取,一般方法以 socket开头。常用的 自测方法可以 以 在服务器开启 nc 服务指定端口,然后输入数据就可以创建一个简单的队列生产端 和 服务端, 本地监听端口,为消费端,源源不断的获取数据 2.3.4? 自定义读取可以使用flink连接器,自定义数据读取函数,与外部存储系统交互,包括但不限于 kafka、jdbc等,一般方法以 add 或者 create开头。 2.4??数据转换处理(Transformation)由图中看出,并不是所有的 DataSTream都可以相互转换。里面转换算子网上有更详细的教程,后面的demo 会有所涉及,此处不做详解。 ???????2.5??数据输出(Sink)数据读取的API 是在 环境对象上,但是数据输出的API绑定在 DataStream。最新版本只支持输出到控制台、socket、自定义 三大类,文件相关的一致标记为废弃,但是可以使用或在自定义中实现。自定义输出的 接口为 DataStream.addSink(). 除正常输出外,还有一些过程监控、特殊捕获的旁路输出,主要使用 SingleOutputStreamOperator,且只能在特定的函数中使用。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 6:55:41- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |