08. flink安装教程

Flink 部署

1.1 Standalone 模式

1.1.1 安装

解压缩 flink-1.10.1-bin-scala_2.12.tgz,进入 conf 目录中。

[xikuang@hadoop102 software]$ tar -zxvf flink-1.10.1-bin-scala_2.12.tgz -C  /opt/module/
[xikuang@hadoop102 module]$ mv flink-1.10.1/ flink

1)修改flink/conf/flink-conf.yaml文件:

[xikuang@hadoop102 module]$ cd flink/
[xikuang@hadoop102 flink]$ vim conf/flink-conf.yaml 

修改成:
 jobmanager.rpc.address: hadoop102
 rest.port: 8085

:wq

2)修改/conf/slaves文件:

[xikuang@hadoop102 flink]$ vim conf/slaves 

替换成: 
hadoop103
hadoop104

3)分发给另外两台机子:

[xikuang@hadoop102 flink]$ cd ../
[xikuang@hadoop102 module]$ xsync flink/

4)启动:

[xikuang@hadoop102 module]$ cd flink/
[xikuang@hadoop102 flink]$ bin/start-cluster.sh 

访问 http://hadoop102:8085 可以对 flink 集群和任务进行监控管理。

1.1.2 提交任务

1)准备数据文件(如果需要)*

2)把含数据文件的文件夹,分发到* taskmanage 机器中

3)执行程序

4)查看计算结果

5)在webui控制台查看计算过程

1.2 Yarn 模式

以 Yarn 模式部署 Flink 任务时,要求 Flink 是有 Hadoop 支持的版本, Hadoop

环境需要保证版本在 2.2 以上,并且集群中安装有 HDFS 服务。

1.2.1 Flink on Yarn

Flink 提供了两种在 yarn 上运行的模式 ,分 别为 Session-Cluster 和 Per-Job-Cluster

模式。

1.Session-cluster 模式:

Session-Cluster 模式需要先启动集群,然后再提交作业,接着会向 yarn 申请一 块空间后,资源永远保持不变。如果资源满了,下一个作业就无法提交,只能等到 yarn 中的其中一个作业执行完成后, 释放了资源, 下个作业才会正常提交。 所有作 业共享 Dispatcher 和 ResourceManager;共享资源;适合规模小执行时间短的作业。

在 yarn 中初始化一个 flink 集群,开辟指定的资源,以后提交任务都向这里提 交。这个 flink 集群会常驻在 yarn 集群中, 除非手工停止。

2. Per-Job-Cluster 模式:

一个 Job 会对应一个集群 ,每 提交一个作业会根据自身的情况 ,都 会单独向 yarn 申请资源,直到作业执行完成,一个作业的失败与否并不会影响下一个作业的正常 提交和运行。独享 Dispatcher 和 ResourceManager,按需接受资源申请;适合规模大 长时间运行的作业。

每次提交都会创建一个新的 flink 集群,任务之间互相独立,互不影响,方便管 理。任务执行完成之后创建的集群也会消失。

第2章 Flink 运行架构

2.1 Flink 运行时的组件

Flink 运行时架构主要包括四个不同的组件,它们会在运行流处理应用程序时协同工作: 作业管理器(JobManager)、资源管理器(ResourceManager)、任务管理器(TaskManager), 以及分发器(Dispatcher)。因为 Flink 是用 Java 和 Scala 实现的,所以所有组件都会运行在 Java 虚拟机上。每个组件的职责如下:

• 作业管理器(JobManager) 控制一个应用程序执行的主进程,也就是说, 每个应用程序都会被一个不同的

JobManager 所控制执行。JobManager 会先接收到要执行的应用程序,这个应用程序会包括: 作业图(JobGraph)、逻辑数据流图(logical dataflow graph)和打包了所有的类、库和其它 资源的 JAR 包。JobManager 会把 JobGraph 转换成一个物理层面的数据流图,这个图被叫做 “执行图”(ExecutionGraph),包含了所有可以并发执行的任务。JobManager 会向资源管 理器(ResourceManager)请求执行任务必要的资源,也就是任务管理器(TaskManager)上 的插槽( slot)。一旦它获取到了足够的资源,就会将执行图分发到真正运行它们的 TaskManager 上。而在运行过程中,JobManager 会负责所有需要中央协调的操作,比如说检 查点(checkpoints)的协调。

• 资源管理器(ResourceManager)

主要负责管理任务管理器(TaskManager)的插槽(slot),TaskManger 插槽是 Flink 中 定义的处理资源单元。Flink 为不同的环境和资源管理工具提供了不同资源管理器,比如 YARN、Mesos、K8s,以及 standalone 部署。当 JobManager 申请插槽资源时,ResourceManager 会将有空闲插槽的 TaskManager 分配给 JobManager。如果 ResourceManager 没有足够的插槽 来满足 JobManager 的请求,它还可以向资源提供平台发起会话,以提供启动 TaskManager 进程的容器。另外,ResourceManager 还负责终止空闲的 TaskManager,释放计算资源。

• 任务管理器(TaskManager)

Flink 中的工作进程。通常在 Flink 中会有多个 TaskManager 运行,每一个 TaskManager

都包含了一定数量的插槽(slots)。插槽的数量限制了 TaskManager 能够执行的任务数量。 启动之后, TaskManager 会向资源管理器注册它的插槽;收到资源管理器的指令后, TaskManager 就会将一个或者多个插槽提供给 JobManager 调用。JobManager 就可以向插槽 分配任务(tasks)来执行了。在执行过程中,一个 TaskManager 可以跟其它运行同一应用程 序的 TaskManager 交换数据。

• 分发器(Dispatcher)

可以跨作业运行,它为应用提交提供了 REST 接口。当一个应用被提交执行时,分发器 就会启动并将应用移交给一个 JobManager。由于是 REST 接口,所以 Dispatcher 可以作为集 群的一个 HTTP 接入点,这样就能够不受防火墙阻挡。Dispatcher 也会启动一个 Web UI,用 来方便地展示和监控作业执行的信息。Dispatcher 在架构中可能并不是必需的,这取决于应 用提交运行的方式。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值