使用Flink SocketWordCount示例[Apache-Flink]的Docker



我想在Docker的帮助下使用Flink。我想将SocketWordCount实例作为启动运行。但是在这个阶段,我遇到了一个错误。我无法与插座连接。因此,20毫秒后,flink完成工作。

docker-compose:

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-compoup,我进入运行的JobManager。

nc -l 6123

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

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

我正在按照Flink文档中的说明进行说明;我要实现的是计算使用NC发送的单词,并将结果写入.OUT文件。但是在20毫秒后,弗林克在这里关闭。当我使用Docker-Compose日志查看日志时,我发现它是关闭的,因为没有建立连接。对不起,我的英语不好。我不知道有什么问题。如果您想了解有关该主题的更多信息,我可以从视觉上发布我的作品命令。

这就是我的工作方式:

首先我跑了

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是运行TaskManager的容器的名称,使用docker ps确定)。

事实是,实际工作发生在Taskmanager上。Jobmanager仅协调工作。也就是说,该连接是在TaskManager节点上建立的。您可以尝试运行

nc -l 6123

在TaskManager上。

作为提示,插座连接的示例不是分布式设置的最佳方法。

相关内容

  • 没有找到相关文章

最新更新