大话Flink之二-Flink部署 Standalone 模式 Yarn 模式 Kubernetes 部署

目录

 

三、Flink 部署

3.1 Standalone 模式

3.1.1  安装

3.1.2 提交任务

3.2 Yarn 模式

3.2.1 Flink on Yarn

3.2.2 Session Cluster

3.2.2 Per Job Cluster 

 3.3 Kubernetes 部署


三、Flink 部署

3.1 Standalone 模式

3.1.1  安装

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

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

2)修改 /conf/slave文件

3)分发给另外两台机子

4)启动

访问http://hadoop1:8081

3.1.2 提交任务

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

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

如果从文件中读取数据,由于是从本地磁盘读取,实际任务会被分发到 taskmanage 的机器中,所以要把目标文件分发。

3) 执行程序

./flink run -c com.atguigu.wc.StreamWordCount –p 2

FlinkTutorial-1.0-SNAPSHOT-jar-with-dependencies.jar --host lcoalhost –port 7777

4) 查看计算结果

注意:如果输出到控制台,应该在 taskmanager 下查看;如果计算结果输出到文件,同样会保存到 taskmanage 的机器下,不会在 jobmanage 下。

 

3.2 Yarn 模式

以 Yarn 模式部署 Flink 任务时,要求 Flink 是有 Hadoop 支持的版本,Hadoop环境需要保证版本在 2.2 以上,并且集群中安装有 HDFS 服务。

3.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 集群,任务之间互相独立,互不影响,方便管 理。任务执行完成之后创建的集群也会消失。

3.2.2 Session Cluster

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.atguigu.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

3.2.2 Per Job Cluster 

1) 启动hadoop集群

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

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

 3.3 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-jobmanager:ui/proxy

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值