【问题标题】:Docker using flink socketwordcount example [apache-flink]Docker 使用 flink socketwordcount 示例 [apache-flink]
【发布时间】:2019-02-22 05:24:24
【问题描述】:

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

Docker 撰写:

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

在我做 docker-compose up 之后,我进入了正在运行的 jobmanager。

nc -l 6123

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

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

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

【问题讨论】:

  • 我认为你提供来自docker-compose logs的日志会很好
  • 当我查看日志时,我收到消息“没有完成连接,因为它没有发生”。

标签: docker apache-flink word-count


【解决方案1】:

我是这样工作的:

我先跑

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 确定)。

【讨论】:

    【解决方案2】:

    问题是实际工作发生在任务管理器上。 Jobmanager 只协调工作。也就是说,尝试在任务管理器节点上建立连接。您可以尝试运行

    nc -l 6123
    

    在任务管理器上。

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

    【讨论】:

    • 感谢您的回复。那么我应该遵循一个关于如何使 socketwordcount 实例工作的方法。 – 你能建议任何来源吗
    • 我已经更新了答案。您可以尝试在 taskmanager 上启动 nc。
    • 我看过你的编辑。但我之前尝试过,但它没有再次工作。我应用了很多方法,但无法运行。所以我向这个社区寻求帮助。感谢您的帮助。如果您有其他建议,我很想听听。
    • netcat 在 taskmanager 容器中不可用,并且在那里安装它没有多大意义。此外,6123 是 jobmanager 端口,因此使用另一个端口更容易混淆。请参阅我的答案,了解一种使其正常工作的方法。
    猜你喜欢
    • 2017-02-25
    • 2016-11-13
    • 2016-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-06
    相关资源
    最近更新 更多