• 【云原生】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的环境和其他资源管理框架下进行部署。

    准备工作

    1. # Docker Compose 安装教程:
    2. https://blog.csdn.net/justlpf/article/details/131973134
    3. # docker-compose常用命令:
    4. 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
    1. version: "2.1"
    2. services:
    3. jobmanager:
    4. image: flink:1.14
    5. expose:
    6. - "6123"
    7. ports:
    8. - "8081:8081"
    9. command: jobmanager
    10. environment:
    11. - JOB_MANAGER_RPC_ADDRESS=jobmanager
    12. taskmanager:
    13. image: flink:1.14
    14. expose:
    15. - "6121"
    16. - "6122"
    17. depends_on:
    18. - jobmanager
    19. command: taskmanager
    20. links:
    21. - "jobmanager:jobmanager"
    22. environment:
    23. - JOB_MANAGER_RPC_ADDRESS=jobmanager

    3、启动flink

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

    docker-compose up -d
    

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

    docker-compose up
    

    4、启动多个taskmanager

    1. # 启用5个taskmanager
    2. docker-compose scale taskmanager=5

    启动问题参考:

    1. $ docker-compose up
    2. ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?
    3. If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.
    4. 解决参考:https://blog.csdn.net/xiojing825/article/details/79494408
    5. # 加上sudo,这个会输出详细日志到窗口
    6. flink]$ sudo docker-compose up
    7. Creating network "flink_default" with the default driver
    8. Pulling jobmanager (flink:1.14)...
    9. 1.14: Pulling from library/flink
    10. 301a8b74f71f: Pull complete
    11. 4688df200b56: Pull complete
    12. 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及映射的端口就可以访问了

  • 相关阅读:
    严选算法模型质量保障
    缓存中间件-Redis(一)
    一次实战压测流程及问题梳理
    PPT基础:编辑顶点
    5G智能制造食品工厂数字孪生可视化平台,推进食品行业数字化转型
    常见位运算公式使用场景
    思科防火墙应用NAT
    6个视频剪辑必备的素材网站,免费下载。
    MySQL初识
    ChatGPT科研绘图丨散点图、柱状图、小提琴图、箱型图、雷达图、玫瑰图、气泡图、森林图、三元图、三维图等各类科研图
  • 原文地址:https://blog.csdn.net/justlpf/article/details/132735057