Apache Flink学习笔记
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学习笔记的更多相关文章
- Flink学习笔记-新一代Flink计算引擎
说明:本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKh ...
- Flink学习笔记:Flink Runtime
本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKhaz ...
- Flink学习笔记:Flink开发环境搭建
本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKhaz ...
- Flink学习笔记:Flink API 通用基本概念
本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKhaz ...
- flink学习笔记:DataSream API
本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKhaz ...
- Flink学习笔记:Operators串烧
本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKhaz ...
- Flink学习笔记:Time的故事
本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKhaz ...
- Flink学习笔记:异步I/O访问外部数据
本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKhaz ...
- Flink学习笔记:Connectors概述
本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKhaz ...
随机推荐
- 【matlab】 拉格朗日插值
第一个函数 "lagrange1.m" 输入:X Y 与点x0 输出:插值函数对应函数值 y0 function y = lagrange1(X,Y,x0) n = length ...
- JAVA入门之程序设计环境搭建
这篇文章写给刚接触或者想学JAVA的新朋友.学习JAVA,需要找一本好的入门书籍,推荐<Java从入门到精通>,然后就是JAVA程序设计开发环境的搭建. 首先,我们需要安装JAVA开发工具 ...
- Http协议浅析
目录 Http协议浅析 http协议简介 http协议特性 http请求协议与响应协议 请求协议 响应协议 响应状态码 请求URI定位资源 HTTP方法 GET:获取资源 POST:传输实体主体 PU ...
- docker 自制CentOS 6-lnp镜像
环境准备 1台centos 6.5镜像虚拟机 febootstrap.docker febootstrap 安装 yum install -y yum-priorities && r ...
- VMware下 CentOS 连接外网问题(笔记)
虚拟机连接外网有三种模式.桥接.Nat.Host-Only.三者的区别,详见 实例讲解虚拟机3种网络模式(桥接.nat.Host-only) 使用虚拟机连接外网时,一定要充分考虑本地的网络环境!!! ...
- Leuze BCL308i 使用方法整理
1 硬件连接关系 1.1 接口盒 BCL308i一般选配MK308/MK348/MK358系列接口盒, 单独使用(不组成扫描集群)时需要连接3根线,分别为SERVICE .SW/PWR.HOST/BU ...
- Shell定时删除日志
vim del_log.sh #!/bin/bash location="/home/dl/code/logs" find $location -mtime +4 -type f ...
- CSS 鼠标样式
设置鼠标指针放在一个元素边界范围内时所用的光标形状,需要对元素的css属性cursor进行设置. cursor属性可能的值: default 默认光标(通常是一个箭头) auto 默认.浏览器设置的( ...
- 简单的dp加贪心
题目链接:传送门 这个题目让我纠结了好久,之后恍然大悟是求最长的递减序列,并加上贪心的算法,如果有大于两个的发射系统,应该判断使导弹的高度与此时个个发射系统的高度比较,选取高度差最小的去执行这次的拦截 ...
- 关于layui(layer)子页面获取不到父页面jQuery对象的问题。
如果在使用layui-layer模块过程中,在子页面执行代码: window.parent.$("#id").val() 报错:window.parent.$ is not a f ...