使用Docker快速部署Flink分布式集群

前言

大家是否记得自己是怎么开始学习大数据的内容呢,估计关注我得同学会发现前面有点陆续有点关于Docker的小烂文,是因为使用Docker可以最快的速度让我们拥有一个学习的环境。大数据的东西都逃不过搭建环境测试跑通这么一个过程,我自己也是过来人,尤其是刚刚接触比较新的东西的时候受制于当前的网络,当前的配置一系列的问题,导致大量从入门到放弃的情况非常多,今天我通过一些实际的例子,让大家感受一下这种便利性。

误区

首先一定要纠正一个误区,尤其是这种技术类型的,不是说需要掌握100%才去使用,但凡了解了一丢丢,你就应该去做了,很多人一上来就干到很深的底层原理,那样学习本身的成本就很高了,没必要。另外一方面来说试错这个事情本身就是学习的过程。更重要的一点,一定是你自己亲自动手跑通的才算,因为参考学习视频学的时候,你发现老师操作的时候异常顺利,因为有些问题老师处理过了,有的问题在老师的环境上面就没有。

目标

我这里是两个小案例,通过这种案例让大家感受到docker作为工具给我们带来便利,一是自己编写的java使用docker跑通,第二个是使用docker快速获得flink的环境。 前提,大家机器里面有docker环境,注意了docker环境在mac和windows都是有图形安装的,所以和安装QQ这种完全是一样的,官网在这里,点击,下载安装包安装就行,不用很复杂的配置。我知道这里面在很多教学资料告诉怎么去linux上面安装,那是深入学习的时候才会到linux上面去,这个地方千万别花太多时间折腾了。
在这里插入图片描述

跑通一个自己的Java程序

首先当然是构建一个maven工程,大家养成习惯为了让后面的人工作顺利进行,前面的工作做好,我这里提前准备一下maven仓库的配置,内容如下

cat /Users/zhuxuemin/.m2/settings_aliyun.xml

这里面关键的内容其实是阿里云仓库配置,这样后面会顺利一些

<mirror>
            <id>alimaven</id>
            <name>aliyun maven</name>
            <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
            <mirrorOf>central</mirrorOf>
</mirror>

构建工程了,我是比较喜欢先命令行构建出来,再导入idea,所以下面的命令顺利会和前面工作有关系

mvn --settings /Users/zhuxuemin/.m2/settings_aliyun.xml archetype:generate -DgroupId=net.blog.csdn -DartifactId=docker-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

构建出来导入idea,就是一个简单的maven工程,帮我们输出一下。
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/ef0af76c7bc144eca352d18f5112208b.png

### 使用 Docker 部署 Flink 集群 为了使用 Docker 部署 Apache Flink 集群,需遵循一系列配置和命令来确保集群能够正常运行。官方提供了一种简便的方法通过单个 Bash 脚本来启动本地集群环境[^1]。 对于生产级别的部署或者更复杂的设置,则建议采用更为详细的配置方式。当目标是在容器环境中操作时,Docker 提供了一个灵活的选择。具体来说: - **准备阶段** 安装 DockerDocker Compose 是必要的前提条件。这些工具允许创建多容器的应用程序栈,并简化管理多个相互依赖的服务的过程。 - **构建镜像** 可以基于官方提供的 `flink` Dockerfile 或者自定义的 Dockerfile 来构建适合特定需求的 Flink 镜像。如果计划利用 AWS S3 存储日志或其他数据文件,在构建过程中应考虑加入相应的支持库,比如将 `flink-s3-fs-hadoop` JAR 文件复制到插件目录下以便启用对 S3 的访问能力[^2]。 - **编写 docker-compose.yml** 创建一个描述整个应用架构和服务间关系的 YAML 文件非常重要。下面是一个简单的例子用于说明如何定义 master(jobmanager)和 worker(taskmanager)节点之间的交互: ```yaml version: '3' services: jobmanager: image: flink:latest ports: - "8081:8081" command: standalone-job --job-classname org.apache.flink.streaming.examples.socket.WindowedSocketWindowWordCount environment: - JOB_MANAGER_RPC_ADDRESS=jobmanager taskmanager: image: flink:latest depends_on: - jobmanager entrypoint: ["./bin/taskmanager.sh", "start"] deploy: replicas: 2 ``` 这段配置指定了两个主要组件——JobManager 和 TaskManager,并设置了它们之间的工作流程以及对外暴露端口等细节信息。 - **启动集群** 利用上述编写的 compose 文件,执行如下指令即可一键启动完整的 Flink 集群实例: ```bash docker-compose up -d ``` 该命令会按照指定的方式自动拉取所需资源并完成初始化过程,最终形成一个多节点协同工作的分布式计算平台。 #### 注意事项 考虑到高可用性和容错机制的重要性,在实际应用场景中可能还需要进一步调整参数设定,例如增加冗余副本数量、优化网络连接策略或是集成外部监控系统等等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值