大数据学习之Flink——03Flink安装和部署

一. 集群的基本架构

Flink 整个系统主要由两个组件组成,分别为 JobManager 和 TaskManager,Flink 架构也遵循 Master-Slave 架构设计原则,JobManager 为 Master 节点,TaskManager 为 Worker (Slave)节点。所有组件之间的通信都是借助于 Akka Framework,包括任务的状态以及Checkpoint 触发等信息。
在这里插入图片描述

  1. Job Client
    Job Client 不是 Flink 程序执行的内部部分, 但它是任务执行的起点. Job Client 负责接受用户的程序代码, 然后创建数据流, 将数据流提交给 Job Manager 以便进一步执行. 执行完成后, Job Client 将结果返回给用户
    在这里插入图片描述
  2. Job Manager
    1. 主进程(也称为作业管理器)协调和管理程序的执行. 它的主要职责包括安排任务, 管理checkpoint, 故障恢复等.
    2. 机器集群中至少要有一个 master, master 负责调度 task, 协调 checkpoints 和容灾, 高可用设置的话可以有多个 master, 但要保证一个是 leader, 其他是 standby;
    3. Job Manager 包含 Actor system、Scheduler、Check pointing 三个重要的组件
  3. Task Manager
    1. 从 Job Manager 处接收需要部署的 Task. Task Manager 是在 JVM 中的一个或多个线程中执行任务的工作节点.
    2. 任务执行的并行性由每个 Task Manager 上可用的任务槽决定, 每个任务代表分配给任务槽的一组资源. 例如, 如果 Task Manager 有四个插槽,那么它将为每个插槽分配 25% 的内存. 可以在任务槽中运行一个或多个线程. 同一插槽中的线程共享相同的 JV. 同一 JVM 中的任务共享 TCP 连接和心跳消息.
    3. Task Manager 的一个 Slot 代表一个可用线程, 该线程具有固定的内存, 注意 Slot 只对内存隔离,没有对 CPU 隔离.
    4. 默认情况下, Flink 允许子任务共享 Slot, 即使它们是不同 task 的 subtask, 只要它们来自相同的 job. 这种共享可以有更好的资源利用率。
      在这里插入图片描述

可以看出,Flink 的任务运行其实是采用多线程的方式,这和 MapReduce 多 JVM 进程的 方式有很大的区别 Fink能够极大提高 CPU 使用效率,在多个任务和 Task之间通过 TaskSlot 方式共享系统资源,每个 TaskManager 中通过管理多个 TaskSlot 资源池进行对资源进行有效管理。

二. 集群的安装和部署

  1. 上传并解压到指定目录
    在这里插入图片描述

  2. 配置文件

    1. 修改 flink-conf.yaml 配置文件

      # 指定jobmanager节点名称
      jobmanager.rpc.address: node01
      

      在这里插入图片描述

      # 表示数每一个 TaskManager 上有 3 个 Slot。
      taskmanager.numberOfTaskSlots: 3
      

      在这里插入图片描述

    2. 编辑 slaves 配置文件

      指定slaves节点的名称

      在这里插入图片描述

    3. 修改masters配置文件

      指定master节点名称

      在这里插入图片描述

  3. 分发给其他节点

    scp -r flink-1.9.1 node02:`pwd`
    scp -r flink-1.9.1 node03:`pwd`
    scp -r flink-1.9.1 node04:`pwd`
    
  4. 启动flink集群

    ./start-cluster.sh
    

    在这里插入图片描述

  5. 访问WebUI

    http://node01:8081

    在这里插入图片描述

声明:

  1. 本文参考了尚学堂Flink课程的课件
  2. 本文参考了博客: Flink 从 0 到 1 学习 —— Apache Flink 介绍
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值