Apache Flink学习笔记

简介

大数据的计算引擎分为4代

第一代:Hadoop承载的MapReduce。它将计算分为两个阶段,分别为Map和Reduce。对于上层应用来说,就要想办法去拆分算法,在上层应用实现多个Job串联,完成一个完整算法。例如:迭代计算

第二代:支持DAG框架的计算引擎,如Tez以及更上层的Oozie。

第三代:Spark为代表的计算引擎。特点是Job内部的DAG支持(不跨越Job),以及强调的实时计算。

第四代:Flink对流计算的支持,也可以支持Batch任务以及DAG的运算。

需要体会各个框架的差异,以及更适合的场景。并进行理解,没有哪一个框架可以完美的支持所有的场景,也就不可能有任何一个框架能够完全取代另一个。就像Spark没有取代Hadoop,Flink也不可能取代Spark。

Flink是一个针对流数据和批数据的分布式处理引擎。主要是由Java代码实现,目前还依靠开源社区的贡献发展。对Flink而言,所要处理的主要场景就是流数据。会把所有任务当做流来处理,也是最大的特点。

可以支持本地的快速迭代,以及一些环形的迭代任务。并且Flink可以定制化内存管理。就框架本身与应用场景来说,Flink更相似与Storm。

Client用来提交任务给JobManager

JobManager分发任务给TaskManager去执行,然后TaskManager会心跳的汇报任务状态。

Flink调度简述

在Flink集群中,计算资源被定义为Task Slot。每个TaskManager会拥有一个或多个Slots。JobManager会以Slot为单位调度Task。但这里的Task跟我们在Hadoop中的理解是有区别的。对Flink的JobManager来说,其调度的是一个Pipeline的Task,而不是一个点。

在Hadoop中Map和Reduce是两个独立调度的Task,并且都会去占用计算资源。对Flink来说MapReduce是一个Pipeline的Task,只占用一个计算资源。

在TaskManager中,根据其所拥有的Slot个数,同时会拥有多个Pipeline

因为Flink自身也需要简单的管理计算资源(Slot)。当Flink部署在Yarn上面之后,Flink并没有弱化资源管理。也就是说这时候的Flink再做一些Yarn该做的事情。

生态圈

Flink支持Scala和Java的API,Python在测试中。Flink通过Gelly支持了图操作,还有机器学习的FlinkML。Table是一种接口化的SQL支持,也就是API支持,而不是文本化的SQL解析和执行。

部署

Flink有三种部署模型,分别是Local,Standalone Cluster和Yarn Cluster。对于Local模式来说,JobManager和TaskManager会公用一个JVM来完成Workload。如果要验证简单的应用,Local模式是最方便的。实际应用中大多数使用Standalone或者Yarn Cluster

Standalone模式

搭建Standalone模式的Flink集群之前,需要先下载Flink安装包。

需要指定Master和Worker。Master机器会启动JobManager,Worker则会启动TaskManager。

需要修改conf目录中的master和slaves。在配置master文件时,需要指定JobManager的UI监听端口。

JobManager只需配置一个,Worker则需配置一个或多个。

在conf目录中找到文件flink-conf.yaml。文件中定义了Flink各个模块的基本属性,如RPC的端口。JobManager和TaskManager堆的大小等。一般只需要修改taskmanager.numberOfTaskSlots,拥有Slot个数。一般设置成CPU的core数。

Yarn Cluster模式

为了最大化利用集群资源,会在一个集群中同时运行多种类型的Workload。因此Flink也支持在Yarn上面运行。

#

Apache Flink学习笔记的更多相关文章

  1. Flink学习笔记-新一代Flink计算引擎

    说明:本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKh ...

  2. Flink学习笔记:Flink Runtime

    本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKhaz ...

  3. Flink学习笔记:Flink开发环境搭建

    本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKhaz ...

  4. Flink学习笔记:Flink API 通用基本概念

    本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKhaz ...

  5. flink学习笔记:DataSream API

    本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKhaz ...

  6. Flink学习笔记:Operators串烧

    本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKhaz ...

  7. Flink学习笔记:Time的故事

    本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKhaz ...

  8. Flink学习笔记:异步I/O访问外部数据

    本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKhaz ...

  9. Flink学习笔记:Connectors概述

    本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKhaz ...

随机推荐

  1. Codewars, Leetcode, Hackerrank. Online Judges Reviews

    http://jasonjl.me/blog/2015/03/30/practical-programming-practice-services/ Codewars, Leetcode, Hacke ...

  2. kudu安装部署

    安装部署节点规划 节点 kudu-master kudu-tserver node01 是 是 node02 是 是 node03 是 是 配置本地Yum的Repository 下载kudu安装yum ...

  3. 【http学习杂记】2017年7月14日

    1. 连接超时 连接超时是tcp协议层次, 此时服务器还没有处理请求数据,也就是说服务器的逻辑开没有执行 2. 请求超时 请求超时属于服务器已经连接成功并开始处理,但是时间比较长,大于你设置的请求超时 ...

  4. spring中MessageSource的配置使用方法1[转]

    本文转载仅供自己学习收录,不做任何商业用途,如有需要请访问文章原地址:http://blog.csdn.net/qyf_5445/article/details/8124306 Spring定义了访问 ...

  5. 25个增强iOS应用程序性能的提示和技巧 — 中级篇

    本文由破船译自:raywenderlich 转载请注明出处:BeyondVincent的博客 _____________ 在开发iOS应用程序时.让程序具有良好的性能是非常关键的.这也是用户所期望的. ...

  6. SAP NetWeaver BPM

    什么是BPM? BPM是Business Process Management的缩写,翻译过来是业务流程管理.BPM本身并没有明确的定义,它更多的是一种概念,这个概念本身的产生来源于企业对众多业务系统 ...

  7. [转]打造自己的LINQ Provider(上):Expression Tree揭秘

    概述 在.NET Framework 3.5中提供了LINQ 支持后,LINQ就以其强大而优雅的编程方式赢得了开发人员的喜爱,而各种LINQ Provider更是满天飞,如LINQ to NHiber ...

  8. unittest中setUp与setUpClass执行顺序

    最基础的概念 1.setUP(self)看下面的执行顺序 import unittest class TestGo(unittest.TestCase): def setUp(self): print ...

  9. 论文笔记 Robust face landmark estimation under occlusion

    1. Abstract 现实世界中的人脸很多时候都存在遮挡以及大的形状变化,而目前的人脸关键点检测方法在这种情况下表现欠佳, 因为它们未能提供一种系统的方法来处理异常.因而authors提出一种新的方 ...

  10. Debian 8 安装 Qt5 和 go-qml

    一.安装相关依赖 ~ ᐅ sudo apt-get install build-essential libgl1-mesa-dev ~ ᐅ sudo apt-get install qt5-defau ...