1、WordCount程序实例



2、本地监听9000端口后测试结果



3、job提交流程



4、local模式执行StreamGraph任务



5、流程分析

flink job提交流程个人理解可以大致分为定义和提交两个环节:以下以WordCount程序为例进行分析

5.1 定义流程

流程定义包含执行环境构建和算法流程定义:

5.1.1 执行环境构建

执行环境是整个flink程序执行的上下文,记录其相关配置,并提供一系列方法,如读取输入流等,同时提供execute真正开启提交计算的入口。



下面具体来看getExecutionEnvironment方法



本地运行时,其实执行的是createStreamExecutionEnvironment方法



继续往下看发现不断重载createLocalEnvironment方法,最终new了一个LocalStreamEnvironment对象,并设置其并行度等于当前机器的CPU核心数



至此执行环境构建完毕,返回一个LocalStreamEnvironment对象



5.1.2 算法流程定义

算法流程简单来说通常包含三个部分:定义source、operator和sink,对应到示例程序为socketTextStream、(flatMap、keyBy、sum)和print三部分

首先:socketTextStream其本质是向执行环境中添加了SocketTextStreamFunction作为source





其次:faltMap、keyBy和sum其本质是向执行环境中添加FlatMapFunction、KeySelector和AggregationFunction三种算子









下面分别为keyBy和sum的关键细节







最后:print其本质是向执行环境中添加PrintSinkFunction作为sink



5.2 提交任务

提交任务个人理解又包含client提交作业和Executor提交作业两部分

5.2.1 第一个环节client根据流程定义提交作业如job提交流程图所示

这个过程其实又可以可以分为两部分:生成StreamGraph和executeAsync两部分:

首先看生成StreamGraph部分,这一部分比较简单,将执行环境中定义好的流程参数构建出StreamGraph即可,核心细节如下:





executeAsync部分其实就是加载一个PipelineExecutor提交StreamGraph,细节如下:





5.2.2 第二个环节Executor提交作业部分源码如下:



本地模式主要包含了以下环节:

1> 由StreamGraph生成JobGraph

2> 创建启动miniCluster集群,启动JobMaster等等

3> 提交任务到JobMaster

最新文章

  1. Mininet在创建拓扑的过程中为什么不打印信息了——了解Mininet的log系统
  2. Jetty应用服务器的安装详解
  3. 启动Eclipse弹出:Failed to load JavaHL Library 错误框的解决办法
  4. September 3rd 2016 Week 36th Saturday
  5. JAVA基础知识之JDBC——ResultSet的滚动和更新(statement的额外参数)
  6. dubbo 转
  7. iOS 瀑布流的基本原理
  8. MockMultipartFile
  9. 换成gnome3桌面后国际版qq不能输入中文问题
  10. 本地数据jqGrid分页
  11. Spark集群搭建_YARN
  12. HttpUtility.UrlEncode()关于空格的编码问题
  13. Premiere Pro 中的键盘快捷键
  14. C#在SharePoint文档库下动态新增文件夹
  15. java实现满天星swing&awt
  16. BZOJ.3926.[ZJOI2015]诸神眷顾的幻想乡(广义后缀自动机)
  17. CentOS 7 快速部署 ELK
  18. UVA 11881 - Internal Rate of Return - [二分]
  19. Qt ------- QMap和QHash的区别
  20. 项目搭建系列之三:SpringMVC框架下使用Ehcache对象、数据缓存

热门文章

  1. git-submodule子模块的添加、使用和删除
  2. swoole一键协程
  3. nginx安全:配置allow/deny控制ip访问(ngx_http_access_module)
  4. windows搭建SVN服务MD版
  5. Geoserver发布shp文件
  6. linux 查看nginx的安装路径等信息
  7. onedrive同步其他任意文件夹
  8. JSP标签语法、JSTL标签库、EL表达式辨析
  9. Spring Cloud 学习笔记 (一)-- Eureka 服务器
  10. SQL Server 列存储索引概述