flink的多种部署模式

## 部署模式和运行模式
### 部署模式
- 本地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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值