Flink flink翻译

Flink代码仓库
会同步代码到 GitHub https://github.com/turbo-duck/flink-demo 背景介绍
单机模式
在之前的章节中,已经验证过,但是实际运行的时候&#xff

代码仓库

代码已同步到GitHub

https://github.com/turbo-duck/flink-demo

背景介绍

单机模式

我们在上一章中验证了它,但是如果我们想要真正执行它,我们需要将它发送到服务器并执行它。

集群模式

在上一章中,我们看到使用Docker进行部署(以方便测试)。同时,还使用容器编排工具docker-compose进行集群模式部署。

快速测试1 x JobManager + 1 x TaskManager 集群模式1 x JobManager + 3 x TaskManagerHA 模式2 x JobManager + Zookeeper + 3 x TaskManager

不过用上面的docker-compose编排方式,还是在一台机器上。在实际生产环境中,您可能需要同时部署多台机器。最优的解决方案是动态扩容和动态缩容,最大限度地提高资源利用率。

云原生部署

首先,确保您拥有Kubernetes,然后您可以尝试使用yaml 进行部署,以利用Rancher 的可视化来简化您的体验。最后,在生产环境中,可以使用Helm + Flink Operator 来大大简化流程。

Yaml

JobManager

需要开放的端口有:

这是完整的Yaml:

apiVersion: 应用程序/v1

kind: 状态集

元数据:

注释:

field.cattle.io/creatorId: u-s4mkr

field.cattle.io/publicEndpoints: \'[{\’地址\’:[\’10.10.52.11\’],\’端口\’:31120,\’协议\’:\’TCP\’,\’serviceName\’:\’flink-server:jobmanager-nodeport\’,\’allNodes\’ :true},{\’地址\’:[\’10.10.52.11\’],\’端口\’:30985,\’协议\’:\’TCP\’,\’serviceName\’:\’flink-server:jobmanager-nodeport\’,\’allNodes\’:true},{\’地址\’:[\’10.10.52.11\’],\’端口\’:30166,\’协议\’:\’TCP\’,\’服务名称\’:\’flink-server:jobmanager-nodeport\’,\’allNodes\’:true}]\’

创建时间戳: \’2023-06-08T08:49:14Z\’

第: 代21

标签:

诺曼

工作负载.user.cattle.io/workloadselector: statefulSet-flink-server-jobmanager

管理领域:

– apiVersion: 应用程序/v1

现场类型: 现场V1

现场V1:

f: 元数据:

f: 注释:

. {}

f:field.cattle.io/creatorId: {}

f:field.cattle.io/publicEndpoints: {}

f: 标签:

. {}

f:cattle.io/creator: {}

f:workload.user.cattle.io/workloadselector: {}

f: 规格:

f:podManagementPolicy: {}

f: 副本: {}

f:revisionHistoryLimit: {}

f:selector: {}

f: 服务名称: {}

f: 模板:

f: 元数据:

f: 注释:

. {}

f:cattle.io/timestamp: {}

f:field.cattle.io/ports: {}

f: 标签:

. {}

f:workload.user.cattle.io/workloadselector: {}

f: 规格:

f: 容器:

k:{\’名称\’:\’作业管理器\’}:

. {}

f:args: {}

f:env:

. {}

k:{\’名称\’:\’JOB_MANAGER_RPC_ADDRESS\’}:

. {}

f: 名称: {}

f:value: {}

f: 图像: {}

f:imagePullPolicy: {}

f: 名称: {}

f: 端口:

. {}

k:{\’容器端口\’:6123,\’协议\’:\’TCP\’}:

. {}

f: 容器端口: {}

f: 名称: {}

f: 协议: {}

k:{\’容器端口\’:6124,\’协议\’:\’TCP\’}:

. {}

f: 容器端口: {}

f: 名称: {}

f: 协议: {}

k:{\’容器端口\’:8081,\’协议\’:\’TCP\’}:

. {}

f: 容器端口: {}

f: 名称: {}

f: 协议: {}

f: 资源: {}

f: 安全上下文:

. {}

f:allowPrivilegeEscalation: {}

f: 能力: {}

f: 特权: {}

f:readOnlyRootFilesystem: {}

f:runAsNonRoot: {}

f:stdin: {}

f:terminationMessagePath: {}

f:terminationMessagePolicy: {}

f:tty: {}

f:dnsConfig: {}

f:dnsPolicy: {}

f:restartPolicy: {}

f: 调度程序名称: {}

f:securityContext: {}

f:terminationGracePeriodSeconds: {}

f: 更新策略:

f:type: {}

经理: 牧场主

操作:更新

time: \’2023-06-08T11:20:03Z\’

– apiVersion: 应用程序/v1

现场类型: 现场V1

现场V1:

f: 状态:

f: 冲突次数: {}

f:currentReplicas: {}

f:currentRevision: {}

f:observedGeneration: {}

f:readyReplicas: {}

f: 副本: {}

f: 更新修订版: {}

f: 更新副本: {}

manager: kube-controller-manager

操作:更新

time: \’2024-06-27T01:24:45Z\’

name: 职位经理

命名空间: flink 服务器

资源版本:\’126393476\’

uid: 461079aa-69f6-423e-85b7-36fdc5c513e7

规格:

podManagementPolicy: OrderedReady

复制品: 1

修订历史限制: 10

选择器:

匹配标签:

工作负载.user.cattle.io/workloadselector: statefulSet-flink-server-jobmanager

服务名称: 工作经理

模板:

元数据:

注释:

牛.io/timestamp: \’2023-06-08T11:18:06Z\’

field.cattle.io/ports: \'[[{\’containerPort\’:8081,\’dnsName\’:\’jobmanager-nodeport\’,\’hostPort\’:0,\’kind\’:\’NodePort\’,\’名称\’:\’jm81\’,\’协议\’ :\’TCP\’,\’sourcePort\’:31120},{\’containerPort\’:6123,\’dnsName\’:\’jobmanager-nodeport\’,\’hostPort\’:0,\’kind\’:\’NodePort\’,\’名称\’:\’jm23\’,\’协议\’:\’TCP\’},{\’containerPort\’:6124,\’dnsName\’:\’jobmanager-nodeport\’,\’hostPort\’:0,\’kind\’:\’NodePort\’,\’名称\’:\’jm24\’,\’协议\’:\’TCP \’}]]\’

创建时间戳: null

标签:

工作负载.user.cattle.io/workloadselector: statefulSet-flink-server-jobmanager

规格:

集装箱:

-args:

– 职位经理

环境:

– name: JOB_MANAGER_RPC_ADDRESS

value: 工作经理

图片: 10.10.52.8/Flink/Flink

imagePullPolicy: 始终

name: 职位经理

端口:

– 集装箱港口: 8081

姓名: jm81

协议: TCP

– 集装箱港口: 6123

姓名: jm23

协议: TCP

– 集装箱港口: 6124

姓名: jm24

协议: TCP

资源: {}

安全上下文:

允许权限升级: 假

功能: {}

特权: 假

readOnlyRootFilesystem: 假

runAsNonRoot: 假

stdin: 真

TerminationMessagePath: /dev/termination-log

TerminationMessagePolicy: 文件

tty: 正确

dnsConfig: {}

dnsPolicy: 集群优先

总是重启策略:

调度程序名称: 默认调度程序

securityContext: {}

宽限期结束秒数: 30

更新策略:

type:滚动更新

状态:

碰撞次数: 0

当前副本: 1

当前版本: jobmanager-6ddbf8767b

观察代数: 21

女士复制品: 1

复制品: 1

updateRevision: JobManager-6ddbf8767b

更新副本: 1

TaskManager

需要开放的端口有:

这是完整的Yaml:

apiVersion: 应用程序/v1

kind: 状态集

元数据:

注释:

field.cattle.io/creatorId: u-s4mkr

field.cattle.io/publicEndpoints: \'[{\’地址\’:[\’10.10.52.11\’],\’端口\’:31538,\’协议\’:\’TCP\’,\’serviceName\’:\’flink-server:taskmanager-nodeport\’,\’allNodes\’ :true},{\’地址\’:[\’10.10.52.11\’],\’端口\’:30067,\’协议\’:\’TCP\’,\’serviceName\’:\’flink-server:taskmanager-nodeport\’,\’allNodes\’:true}]\’

创建时间戳: \’2023-06-08T08:49:30Z\’

第: 代10

标签:

诺曼

工作负载.user.cattle.io/workloadselector: statefulSet-flink-server-taskmanager

管理领域:

– apiVersion: 应用程序/v1

现场类型: 现场V1

现场V1:

f: 元数据:

f: 注释:

. {}

f:field.cattle.io/creatorId: {}

f:field.cattle.io/publicEndpoints: {}

f: 标签:

. {}

f:cattle.io/creator: {}

f:workload.user.cattle.io/workloadselector: {}

f: 规格:

f:podManagementPolicy: {}

f: 副本: {}

f:revisionHistoryLimit: {}

f:selector: {}

f: 服务名称: {}

f: 模板:

f: 元数据:

f: 注释:

. {}

f:cattle.io/timestamp: {}

f:field.cattle.io/ports: {}

f:field.cattle.io/publicEndpoints: {}

f: 标签:

. {}

f:workload.user.cattle.io/workloadselector: {}

f: 规格:

f: 容器:

k:{\’名称\’:\’任务管理器\’}:

. {}

f:args: {}

f:env:

. {}

k:{\’名称\’:\’JOB_MANAGER_RPC_ADDRESS\’}:

. {}

f: 名称: {}

f:value: {}

f: 图像: {}

f:imagePullPolicy: {}

f: 名称: {}

f: 端口:

. {}

k:{\’容器端口\’:6121,\’协议\’:\’TCP\’}:

. {}

f: 容器端口: {}

f: 名称: {}

f: 协议: {}

k:{\’容器端口\’:6122,\’协议\’:\’TCP\’}:

. {}

f: 容器端口: {}

f: 名称: {}

f: 协议: {}

f: 资源: {}

f: 安全上下文:

. {}

f:allowPrivilegeEscalation: {}

f: 特权: {}

f:readOnlyRootFilesystem: {}

f:runAsNonRoot: {}

f:stdin: {}

f:terminationMessagePath: {}

f:terminationMessagePolicy: {}

f:tty: {}

f:dnsPolicy: {}

f:restartPolicy: {}

f: 调度程序名称: {}

f:securityContext: {}

f:terminationGracePeriodSeconds: {}

f: 更新策略:

f:type: {}

经理: 牧场主

操作:更新

time: \’2023-06-08T11:20:40Z\’

– apiVersion: 应用程序/v1

现场类型: 现场V1

现场V1:

f: 状态:

f: 冲突次数: {}

f:currentReplicas: {}

f:currentRevision: {}

f:observedGeneration: {}

f:readyReplicas: {}

f: 副本: {}

f: 更新修订版: {}

f: 更新副本: {}

manager: kube-controller-manager

操作:更新

时间: \’2024-06-

27T01:24:58Z\”
name: taskmanager
namespace: flink-server
resourceVersion: \”126393537\”
uid: 9ddfa3b3-b497-43af-9bb6-af83ffa0aed3
spec:
podManagementPolicy: OrderedReady
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
workload.user.cattle.io/workloadselector: statefulSet-flink-server-taskmanager
serviceName: taskmanager
template:
metadata:
annotations:
cattle.io/timestamp: \”2023-06-08T11:19:53Z\”
field.cattle.io/ports: \'[[{\”containerPort\”:6121,\”dnsName\”:\”taskmanager-nodeport\”,\”kind\”:\”NodePort\”,\”name\”:\”tm21\”,\”protocol\”:\”TCP\”},{\”containerPort\”:6122,\”dnsName\”:\”taskmanager-nodeport\”,\”kind\”:\”NodePort\”,\”name\”:\”tm22\”,\”protocol\”:\”TCP\”}]]\’
field.cattle.io/publicEndpoints: \'[{\”addresses\”:[\”10.10.52.11\”],\”allNodes\”:true,\”port\”:31538,\”protocol\”:\”TCP\”,\”serviceId\”:\”flink-server:taskmanager-nodeport\”},{\”addresses\”:[\”10.10.52.11\”],\”allNodes\”:true,\”port\”:30067,\”protocol\”:\”TCP\”,\”serviceId\”:\”flink-server:taskmanager-nodeport\”}]\’
creationTimestamp: null
labels:
workload.user.cattle.io/workloadselector: statefulSet-flink-server-taskmanager
spec:
containers:
– args:
– taskmanager
env:
– name: JOB_MANAGER_RPC_ADDRESS
value: jobmanager
image: 10.10.52.8/flink/flink
imagePullPolicy: Always
name: taskmanager
ports:
– containerPort: 6121
name: tm21
protocol: TCP
– containerPort: 6122
name: tm22
protocol: TCP
resources: {}
securityContext:
allowPrivilegeEscalation: false
privileged: false
readOnlyRootFilesystem: false
runAsNonRoot: false
stdin: true
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
tty: true
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
updateStrategy:
type: RollingUpdate
status:
collisionCount: 0
currentReplicas: 1
currentRevision: taskmanager-6fd48fdb8d
observedGeneration: 10
readyReplicas: 1
replicas: 1
updateRevision: taskmanager-6fd48fdb8d
updatedReplicas: 1

测试效果

控制台

(根据自己的情况)

http://10.10.52.11:31120/#/overview

扩容TaskManager

当我们对 TaskManager 进行扩容的时候,这里我扩展了 5个,正在逐步扩容,完毕之后 ,我们可以对应观察到控制台中的:

HA模式

同样的操作,你需要在 K8s 集群中用如下的方案来做高可用方案:

3 x JobManagerN x TaskManagerZookeeper

#以上关于Flink的相关内容来源网络仅供参考,相关信息请以官方公告为准!

原创文章,作者:CSDN,如若转载,请注明出处:https://www.sudun.com/ask/92495.html

(0)
CSDN's avatarCSDN
上一篇 2024年6月27日 上午11:01
下一篇 2024年6月27日 上午11:16

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注