Flink 1.7.0 Панель инструментов не показывает статистику задач - PullRequest
1 голос
/ 24 апреля 2019

Я использую панель управления Flink 1.7 и выбираю потоковое задание.Это должно показать мне некоторые метрики, но это остается для загрузки.

Я развернул ту же работу в кластере Flink 1.5 и могу наблюдать за показателями.Flink работает в Docker Swarm, но если я запускаю Flink 1.7 в Docker-Compose (не в 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: Я читал что-то о «отдельном режиме» ... но я им не пользуюсь

1 Ответ

2 голосов
/ 25 апреля 2019

Полагаю, вы работаете в своем кластере в Kubernetes или в Docker Swarm.С Flink 1.7 в Kubernetes вам нужно убедиться, что менеджеры задач регистрируются в менеджере заданий с их IP-адресами, а не с именами хостов.Если вы посмотрите журнал менеджера вакансий, вы увидите много предупреждений о том, что диспетчер задач недоступен.

Вы можете сделать это, передав параметр 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-адрес, доступный из менеджера заданий, как taskmanager.host)

Надеюсь, это поможет.


Обновление: Flink 1.8 решает проблему.Свойство taskmanager.network.bind-policy по умолчанию установлено в «ip», что делает более или менее то же самое, что и описанный выше обходной путь (https://ci.apache.org/projects/flink/flink-docs-stable/ops/config.html#taskmanager)

...