3.1 Standalone 模式

3.1.1 安装

解压缩 flink-1.7.2-bin-hadoop27-scala_2.11.tgz,进入 conf 目录中。

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

修改为主机名:hadoop1
image.png

2)修改 /conf/slave 文件:

在slave 文件里添加slave节点
image.png

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

将修改好的flink 分发到另外两个节点上

  1. [bigdatachadoop1conf]x
  2. $xsyncflink-1.7.0
  1. ![image.png](https://cdn.nlark.com/yuque/0/2020/png/766178/1581565734998-13f0c200-18a5-4450-8871-81a7ebd082b5.png "image.png")

4)启动:

image.png

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

image.png

3.1.2 提交任务

1) 准备数据文件

image.png

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

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

3) 执行程序

  1. ./flink run -c com.atguigu.flink.app.BatchWcApp
  2. /ext/flinkTest-1.0-SNAPSHOT.jar
  3. --input /applog/flink/input.txt
  4. --output /applog/flink/output.csv

image.png

4) 到目标文件夹中查看计算结果

注意:计算结果根据会保存到 taskmanage 的机器下,不会在 jobmanage 下。
image.png

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

image.png

3.2 Yarn 模式

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

1) 启动hadoop集群(略)

2) 启动yarn-session

  1. ./yarn-session.sh -n 2 -s 2 -jm 1024 -tm 1024 -nm test -d
  2. 其中:
  3. -n(--container):TaskManager 的数量。
  4. -s(--slots): 每个 TaskManager slot 数量,默认一个 slot 一个 core,默认每个
  5. taskmanager slot 的个数为 1,有时可以多一些 taskmanager,做冗余。
  6. -jm:JobManager 的内存(单位 MB)。
  7. -tm:每个 taskmanager 的内存(单位 MB)。
  8. -nm:yarn appName(现在 yarn ui 上的名字)。
  9. -d:后台执行。

image.png

3) 执行任务

  1. ./flink run -m yarn-cluster
  2. -c com.atguigu.flink.app.BatchWcApp
  3. /ext/flink0503-1.0-SNAPSHOT.jar
  4. --input /applog/flink/input.txt
  5. --output /applog/flink/output5.csv

image.png

4) 去yarn控制台查看任务状态

image.png

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

  1. // 启动 jobmanager-service 服务
  2. kubectl create -f jobmanager-service.yaml
  3. // 启动 jobmanager-deployment 服务
  4. kubectl create -f jobmanager-deployment.yaml // 启动 taskmanager-deployment 服务
  5. kubectl create -f taskmanager-deployment.yaml

4)访问 Flink UI 页面

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

  1. http://{JobManagerHost:Port}/api/v1/namespaces/default/services/flink-jobmanage
  2. r:ui/proxy