Docker使用flink socketwordcount示例[apache-flink]

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

我想在docker的帮助下使用Flink。我想将Socketwordcount实例作为启动运行。但在这个阶段我遇到了一个错误。我无法连接socket。所以20分钟后,flink完成工作。

多克尔 - 撰写:

version: "3"
services:
  jobmanager:
    image: ${FLINK_DOCKER_IMAGE_NAME:-flink:1.3.2-hadoop24-scala_2.11-alpine}
    expose:
      - "6123"
    ports:
      - "8081:8081"
    command: jobmanager
    environment:
      - JOB_MANAGER_RPC_ADDRESS=jobmanager

  taskmanager:
    image: ${FLINK_DOCKER_IMAGE_NAME:-flink:1.3.2-hadoop24-scala_2.11-alpine}
    expose:
      - "6121"
      - "6122"
      - "9000"
    depends_on:
      - jobmanager
    command: taskmanager
    links:
      - "jobmanager:jobmanager"
    environment:
      - JOB_MANAGER_RPC_ADDRESS=jobmanager

在我做完码头工作之后,我进入正在运行的工作管理员。

nc -l 6123

我正在跑步。然后我在另一个终端的帮助下进入了jobmanager容器

./bin/flink run examples/streaming/SocketWindowWordCount.jar -port 6123

我正在遵循Flink文档中的说明;我想要实现的是计算用nc发送的单词并将结果写入.out文件。但是在这里,眨眼在20毫秒后关闭。当我使用Docker-compose日志查看日志时,我看到它已关闭,因为没有建立连接。我很抱歉我的英语不好。我不知道是什么问题。如果您想了解有关该主题的更多信息,我可以直观地公布我的工作顺序。

docker apache-flink word-count
2个回答
2
投票

这是我如何工作:

首先,我跑了

nc -l 9999

在我的笔记本电脑上的终端(不是在容器中)。

然后我跑了

./bin/flink run examples/streaming/SocketWindowWordCount.jar --hostname 192.168.1.109 --port 9999

在jobmanager容器中,192.168.1.109是我笔记本电脑的IP地址。

最后,我用过

docker logs stuff_taskmanager_1

查看作业的输出(其中stuff_taskmanager_1是运行任务管理器的容器的名称,使用docker ps确定)。


0
投票

问题是实际工作发生在taskmanager上。 Jobmanager只协调工作。也就是说,尝试在taskmanager节点上建立连接。你可能会试着跑

nc -l 6123

在任务管理员。

作为提示,使用Socket连接的示例不是分布式设置的最佳选择。

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