Flink笔记3:部署

一、standalone 模式

1、下载Flink安装包

https://www.apache.org/dyn/closer.lua/flink/flink-1.10.2/flink-1.10.2-bin-scala_2.12.tgz
在这里插入图片描述
将下载的安装包上传到服务端并解压。

2、部署

修改/opt/flink-1.10.1/conf下的flink-conf.yaml文件,主要修改内容如下:

# jobmanager的ip,由于是standalone且就一台主机,所以直接用localhost就行
jobmanager.rpc.address: localhost
# 端口号
jobmanager.rpc.port: 6123
# jobmanager堆内存
jobmanager.heap.size: 1024m
# taskmanager内存
taskmanager.memory.process.size: 1728m
# taskmanager槽数
taskmanager.numberOfTaskSlots: 1
# 并行度
parallelism.default: 1
# 错误恢复策略,region表示只重启错误相关主机
jobmanager.execution.failover-strategy: region

masters文件,jobmanager,8081是交互界面的端口号

localhost:8081

slaves,taskmanager

localhost

localhost最好改成hosts里面配置的主机名,当taskmanager有多个时,在slaves中添加主机名即可(需将配置好的内容分发给每台主机)。

在这里插入图片描述

二、 Yarn 模式

以Yarn 模式部署Flink 任务时, 要求Flink 是有Hadoop 支持的版本, Hadoop环境需要保证版本在2.2 以上,并且集群中安装有HDFS 服务。
Flink 提供了两种在yarn 上运行的模式,分别为Session-Cluster 和Per-Job-Cluster模式。

1、Session-cluster 模式

在这里插入图片描述
Session-Cluster 模式需要先启动集群,然后再提交作业,接着会向yarn 申请一块空间后,资源永远保持不变。如果资源满了,下一个作业就无法提交,只能等到yarn 中的其中一个作业执行完成后,释放了资源,下个作业才会正常提交。

所有作业共享Dispatcher 和ResourceManager;共享资源;适合规模小执行时间短的作业。

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

使用步骤:
1) 启动hadoop 集群(略)

2) 启动yarn-session

./yarn-session.sh -n 2 -s 2 -jm 1024 -tm 1024 -nm test -d

其中:

-n(–container):TaskManager 的数量。
-s(–slots): 每个TaskManager 的slot 数量,默认一个slot 一个core,默认每个 taskmanager 的slot 的个数为1,有时可以多一些taskmanager,做冗余。
-jm:JobManager 的内存(单位MB)。
-tm:每个taskmanager 的内存(单位MB)。
-nm:yarn 的appName(现在yarn 的ui 上的名字)。
-d:后台执行。

3) 执行任务

./flink run -c com.kk.wc.StreamWordCount
FlinkTutorial-1.0-SNAPSHOT-jar-with-dependencies.jar --host lcoalhost –port 7777

4)去yarn 控制台查看任务状态
在这里插入图片描述
5)取消yarn-session

yarn application --kill application_1577588252906_0001

2、Per-Job-Cluster 模式

在这里插入图片描述
一个Job 会对应一个集群,每提交一个作业会根据自身的情况,都会单独向yarn申请资源,直到作业执行完成,一个作业的失败与否并不会影响下一个作业的正常提交和运行。

独享Dispatcher 和ResourceManager,按需接受资源申请;适合规模大长时间运行的作业。

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

使用步骤:
1)启动hadoop 集群(略)

2)不启动yarn-session,直接执行job

./flink run –m yarn-cluster -c com.kk.wc.StreamWordCount
FlinkTutorial-1.0-SNAPSHOT-jar-with-dependencies.jar --host lcoalhost –port
7777

三、Kubernetes 部署

容器化部署时目前业界很流行的一项技术,基于Docker 镜像运行能够让用户更加方便地对应用进行管理和运维。容器管理工具中最为流行的就是Kubernetes(k8s),而Flink 也在最近的版本中支持了k8s 部署模式。
1) 搭建Kubernetes 集群(略)

2) 配置各组件的yaml 文件

在k8s 上构建Flink Session Cluster,需要将Flink 集群的组件对应的docker 镜像分别在k8s 上启动, 包括JobManager、TaskManager、JobManagerService 三个镜像服务。每个镜像服务都可以从中央镜像仓库中获取。

3)启动Flink Session Cluster

// 启动jobmanager-service 服务
kubectl create -f jobmanager-service.yaml
// 启动jobmanager-deployment 服务
kubectl create -f jobmanager-deployment.yaml
// 启动taskmanager-deployment 服务
kubectl create -f taskmanager-deployment.yaml

4)访问Flink UI 页面

集群启动后,就可以通过JobManagerServicers 中配置的WebUI 端口,用浏览器
输入以下url 来访问Flink UI 页面了:

http://{JobManagerHost:Port}/api/v1/namespaces/default/services/flink-jobmanage
r:ui/proxy
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值