【云原生】Docker-compose部署flink

docker-compose 部署flink集群_docker-compose flink-CSDN博客

Apache Flink的数据流编程模型在有限和无限数据集上提供单次事件(event-at-a-time)处理。在基础层面,Flink程序由流和转换组成。
Apache Flink的API:有界或无界数据流的数据流API、用于有界数据集的数据集API、表API。 3
数据流的运行流程
Flink程序在执行后被映射到流数据流,每个Flink数据流以一个或多个源(数据输入,例如 消息队列或文件系统)开始,并以一个或多个接收器(数据输出,如消息队列、文件系统或数据库等)结束。Flink可以对流执行任意数量的变换,这些流可以被编排为有向无环数据流图,允许应用程序分支和合并数据流。
Flink的数据源和接收器
Flink提供现成的源和接收连接器,包括Apache Kafka、Amazon Kinesis、HDFS和Apache Cassandra等。
Flink程序可以作为集群内的分布式系统运行,也可以以独立模式或在YARN、Mesos、基于Docker的环境和其他资源管理框架下进行部署。

准备工作

复制代码
# Docker Compose 安装教程: 
    https://blog.csdn.net/justlpf/article/details/131973134

# docker-compose常用命令:
    https://blog.csdn.net/justlpf/article/details/132734556

1、在服务器创建/data/flink目录

复制代码
mkdir -p /data/flink

2、docker-compose.yml脚本创建

复制代码
vi /data/flink/docker-compose.yml

version: "2.1"
services:
  jobmanager:
    image: flink:1.14
    expose:
      - "6123"
    ports:
      - "8081:8081"
    command: jobmanager
    environment:
      - JOB_MANAGER_RPC_ADDRESS=jobmanager
  taskmanager:
    image: flink:1.14
    expose:
      - "6121"
      - "6122"
    depends_on:
      - jobmanager
    command: taskmanager
    links:
      - "jobmanager:jobmanager"
    environment:
      - JOB_MANAGER_RPC_ADDRESS=jobmanager

3、启动flink

(1)后台运行 一 > 一般推荐生产环境下使用该选项。

复制代码
docker-compose up -d

(2)前台运行 一 > 控制台将会同时打印所有容器的输出信息,可以很方便进行调试。

复制代码
docker-compose up

4、启动多个taskmanager

复制代码
# 启用5个taskmanager
docker-compose scale taskmanager=5 

启动问题参考:

复制代码
$ docker-compose up
ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?

If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.

解决参考:https://blog.csdn.net/xiojing825/article/details/79494408
# 加上sudo,这个会输出详细日志到窗口
flink]$ sudo docker-compose up
Creating network "flink_default" with the default driver
Pulling jobmanager (flink:1.14)...
1.14: Pulling from library/flink
301a8b74f71f: Pull complete
4688df200b56: Pull complete
317eff501ed4: Pull complete

5、浏览器上查看页面dashboard

复制代码
http://IP:8081

想web访问,但是只能访问localhost,本地ip都无法访问。

解决方法:

  1. 首先在容器内执行 wget http://localhost:8081,确定flink在本地可以访问
  2. 容器内输入: netstat -ano

可以看到目前只允许本机访问

  1. 在${flink}/conf/flink-conf.yaml文件中这里改成 0.0.0.0或者指定的ip,类似白名单,就可以了
  1. 重启flink
  2. 容器再次内输入: netstat -ano

到这里使用ip及映射的端口就可以访问了

相关推荐
程序员酥皮蛋1 小时前
docker基础
docker·容器·eureka
java知路4 小时前
linux yum 下载docker安装包及依赖安装包,并离线安装
linux·运维·docker
没有退路那我就不要散步4 小时前
kube-proxy优化
docker·容器·kubernetes
大大大大晴天5 小时前
Flink Resource Providers 深度解析:机制原理、部署模式与最佳实践
flink
ai产品老杨5 小时前
解耦安防碎片化:基于 Docker 与边缘计算的 AI 视频管理平台架构演进(附 GB28181/RTSP 统一接入与源码交付实践)
人工智能·docker·边缘计算
ai产品老杨6 小时前
基于 Docker 与边缘计算的智能安防架构:解耦 GB28181/RTSP 多协议接入与异构芯片部署(附源码交付与 95% 降本实践)
docker·架构·边缘计算
xiami_world6 小时前
私有化部署协同白板选型指南:从Docker容器化到信创全栈适配的架构实践
运维·人工智能·docker·ai·持续部署
阿狸猿7 小时前
论基于云原生数据库的企业信息系统架构设计
数据库·云原生
丑过三八线7 小时前
Kubernetes 常用命令速查手册
云原生·容器·kubernetes
bloglin999998 小时前
docker镜像构建及部署样例
运维·docker·容器