## 部署模式和运行模式
### 部署模式
- 本地local
- 单机无需分布式资源管理
- 集群
- 独立集群standalone
- 需要flink自身的任务管理工具
- jobmanager接收和调度任务
- taskmanager执行
- on其他资源管理工具yarn/k8s
- yarn
- 注意区分flink的和yarn的taskmanager
### 运行模式
- session
- 先启动一个集群,保持一个会话,在这个会话中通过客户端提交作业。 集群启动时所有资源就都已经确定,所有提交的作业会竞争集群中的资源。
- 适合任务规模小,执行时间短的大量作业。
- 作业执行环境会一直保留在集群上,直到会话被人为终止。
- per-job
- 每次提交的job都会创建一个独立的作业执行环境,该作业执行环境仅用于通过客户端提交上来的特定的那个作业。
- 适合执行时间长的少量作业
- 当作业完成后,作业执行环境会被自动释放,集群关闭,资源释放
- application-mode
- 为解决客户端执行代码,客户端提交任务给jobmanager占用带宽而生
### 不需要外部资源管理
- per job-一个任务(作业)起一个集群 (提交作业后建立集群)
- standalone-一个集群跑多个任务,手动分配集群整个的资源,启动起来就已经固定了。任务从集群中取得的资源是否能调整?
### 需要外部资源管理
- application-一个任务(作业/应用(同时提交、有依赖关系的多个作业))起一个集群 (提交作业后建立集群)
- session-一个集群跑多个任务,yarn根据配置生成集群?并且将集群里各个任务对资源的使用情况来分配资源?
## 分层API
- sql 与tableAPI类似,以sql查询表达式的形式表现程序
- table API 以表为中心(处理结构化数据)
- 遵循关系模型(像关系型数据库中的表)
- 提供可比较操作(select\project\join\group by\aggregate)
- 通常以方法链的形式调用(提供了一个声明式的接口来处理批处理和流处理任务),语法上更接近于编程语言
- sparkstreaming API 封装处理函数,提供通用模块:
- 转换 transformations(map\flatmap)
- 连接 joins
- 聚合 aggregations
- 窗口 windows
- 有状态的流处理 处理函数
## 运行架构(standalone会话模式)
- jobManager 作业管理器控制执行应用(管理应用里的任务执行和调度)
- jobmaster 负责处理单独的作业(job),等同于早期flink版本中的jobmanager
- 接收要执行的应用
- jobGraph->excutionGraph(包含了所有可并发执行的任务
- 向resourceManager发送请求,申请执行所需资源
- 获取足够资源后,分发执行图到运行它们的taskmanager上
- 运行过程中,负责所有需要中央协调的操作(checkpoints的协调)
- resourceManager 资源管理器
- 资源(taskManag

最低0.47元/天 解锁文章
579

被折叠的 条评论
为什么被折叠?



