gpt4 book ai didi

docker - Flink 1.7.0仪表板不显示任务统计信息

转载 作者:行者123 更新时间:2023-12-02 12:04:31 25 4
gpt4 key购买 nike

我使用Flink 1.7仪表板并选择一个流作业。这应该向我显示一些指标,但仍然需要加载。

我在Flink 1.5集群中部署了相同的作业,并且可以观察指标。
Flink在docker swarm中运行,但是如果我在docker-compose(不在swarm中)中运行Flink 1.7

flink 1.7 dashboard

我可以做到,删除docker-compose.yaml文件中的主机名

version: "3"
services:
jobmanager17:
image: flink:1.7.0-hadoop27-scala_2.11
hostname: "{{.Node.Hostname}}"
ports:
- "8081:8081"
- "9254:9249"
command: jobmanager
....

我删除主机名:
version: "3"
services:
jobmanager17:
image: flink:1.7.0-hadoop27-scala_2.11
ports:
- "8081:8081"
- "9254:9249"
command: jobmanager
....

现在指标可以使用,但是没有主机名...

有可能两者兼而有之吗?

PD:我读过一些关于“分离模式”的信息...但是我不使用它

最佳答案

我猜你是在Kubernetes或docker swarm上运行集群。在Kubernetes上使用Flink 1.7,您需要确保任务管理器是
用他们的IP地址而不是
主机名。如果查看Jobmanager日志,则会发现许多警告,提示无法访问Taskmanager。

您可以通过定义taskmanager.host参数来实现。一个示例的部署可能如下所示:

apiVersion: extensions/v1beta1
kind: Deployment
....
spec:
template:
spec:
containers:
- name: "<%= name %>"
args: ["taskmanager", "-Dtaskmanager.host=$(K8S_POD_IP)"]
env:
- name: K8S_POD_IP
valueFrom:
fieldRef:
fieldPath: status.podIP

如果您不是在K8上运行,则值得尝试手动传递此参数(通过提供IP地址,该地址可从jobmanager中获得,作为 taskmanager.host)。

希望能有所帮助。

更新:Flink 1.8解决了该问题。默认情况下,属性 taskmanager.network.bind-policy设置为“ip”,与上述解决方法( https://ci.apache.org/projects/flink/flink-docs-stable/ops/config.html#taskmanager)大致相同

关于docker - Flink 1.7.0仪表板不显示任务统计信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55833163/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com