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

问题描述 投票:1回答:1

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

我在Flink 1.5集群中部署了相同的工作,我可以查看指标。 Flink正在docker swarm中运行,但如果我在docker-compose中运行Flink 1.7(不在swarm中),它可以运行

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:我读过有关'分离模式'的内容......但我不使用它

docker kubernetes apache-flink flink-streaming
1个回答
2
投票

我想你正在Kubernetes或docker swarm上运行你的集群。使用Kubernetes上的Flink 1.7,您需要确保任务管理器使用其IP地址而不是主机名向作业管理器注册。如果你查看jobmanagers日志,你会发现很多警告,无法联系到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上运行,可能值得尝试手动传递此参数(通过提供可从作业管理器作为qazxsw poi访问的IP地址)

希望有所帮助。


更新:Flink 1.8解决了这个问题。属性taskmanager.host默认设置为“ip”,它或多或少与上述解决方法相同(taskmanager.network.bind-policy

© www.soinside.com 2019 - 2024. All rights reserved.