window部署虚拟机VirtualBox来部署flink

按理来说Cygwin可以在window模拟unix环境来部署运行flink,

但是在flink 不知从哪个版本开始,flink启动时会在window时创建临时文件夹,传递的文件夹名称参数中有冒号,导致文件夹创建失败,然后taskexecutor会启动失败,也就是说只启动了standalonesession组件,可以在web 127.0.0.1:8081界面访问flink,但是提交任务统统失败。

如果不想通过虚拟机部署flink,可以通过下载flink源码包,然后本地修改代码编译打包部署。

正文:

一、安装VirtualBox,安装Centos

查一查安装教程,此处不说了

二、设置网络

一般需要部署flink,是为了验证jar包任务,所以需要虚拟机和宿主机进行网络通信,为了方便还要虚拟机可以之间联通互联网。

1、网卡设置

虚拟机关机状态下,设置网络,两个网卡

一个桥接,一个host-only

java 复制代码
添加双网卡​​:
​​网卡1​​:选择 ​​NAT​​(默认模式,用于访问外网)。
​​网卡2​​:选择 ​​Host-Only Adapter​​(用于与宿主机通信)。
若没有 Host-Only 网络,需先在 VirtualBox 全局设置中创建:
管理 → 主机网络管理器 → 创建 → 默认使用 192.168.56.0/24 网段

2、启动虚拟机并登录

使用 root 或具有 sudo 权限的账户登录,查看网络

复制代码
nmcli device status

3、配置 Host-Only 网卡(静态 IP)

bash 复制代码
sudo nmcli connection add type ethernet con-name host-only ifname enp0s8 ipv4.method manual ipv4.addresses 192.168.56.100/24
sudo nmcli connection up host-only

​​IP 地址​​:192.168.56.100(需在 Host-Only 网段内,如宿主机 Host-Only 网卡 IP 是 192.168.56.1)。

​​子网掩码​​:/24(即 255.255.255.0)

4、验证网络配置

bash 复制代码
ip addr show enp0s8

输出应包含 192.168.56.100/24。

三、宿主机与虚拟机互通测试

1. 宿主机 ping 虚拟机

在宿主机执行:

bash 复制代码
ping 192.168.56.100

2. 虚拟机 ping 宿主机

bash 复制代码
ping 192.168.56.1  # Host-Only 网卡的宿主机 IP

若成功,表示虚拟机到宿主机通信正常。

3.防火墙

若宿主机或虚拟机防火墙阻止 ICMP,需放行

虚拟机配置

bash 复制代码
sudo firewall-cmd --permanent --add-icmp-block-inversion
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload

宿主机设置

Windows​​:

打开 控制面板 → Windows Defender 防火墙 → 高级设置 → 入站规则 → 启用 文件和打印机共享(回显请求 - ICMPv4-In)

后续如果出现,虚拟机可以Ping通宿主机,但是宿主机ping虚拟机时,无法访问,消息接收但是无返回,虚拟机可以通过抓包到宿主机的发送消息。

设置虚拟机防火墙

bash 复制代码
sudo firewall-cmd --permanent --add-rich-rule='rule protocol value=icmp accept'
sudo firewall-cmd --reload

下载 flink-1.15.0-bin-scala_2.12.tgz 包,可以从官网下载,不过下载的速度太慢了。

可以使用我的分享

链接:https://pan.baidu.com/s/1cja-lHRRrxubQO7X9SKlwg?pwd=kyzi

提取码:kyzi

上传包在/opt/下解压

bash 复制代码
tar -zxf flink-1.15.0-bin-scala_2.12.tgz
cd flink-1.15.0/bin
./start-cluster.sh

显示

bash 复制代码
Starting cluster.
Starting standalonesession daemon on host localhost.
Starting taskexecutor daemon on host localhost.

表示启动成功

不过还需要确认一下,可以通过JPS查看是否有两个组件

或者查看一下日志文件

bash 复制代码
cd /opt/flink-1.15.0/log/
tail *log

出现如下截图表示启动成功了

如果安装的带桌面的Centos,也可以访问

html 复制代码
http://127.0.0.1:8081
相关推荐
派可数据BI可视化29 分钟前
商业智能BI 浅谈数据孤岛和数据分析的发展
大数据·数据库·数据仓库·信息可视化·数据挖掘·数据分析
jiedaodezhuti1 小时前
Flink性能调优基石:资源配置与内存优化实践
大数据·flink
babytiger1 小时前
windows中用wsl使用cuda
windows·wsl·cuda
Lx3522 小时前
Flink窗口机制详解:如何处理无界数据流
大数据
Lx3522 小时前
深入理解Flink的流处理模型
大数据
Lx3522 小时前
Flink vs Spark Streaming:谁更适合你的实时处理需求?
大数据
QYResearch2 小时前
全球香水行业现状调研与发展前景预测(2025-2031年)
大数据
Mr.45672 小时前
Windows 11 右键菜单恢复 Windows 10 经典样式:3 种实用方法详解
windows
QYResearch2 小时前
全球与中国空气净化器市场规模前景
大数据
连线Insight2 小时前
竞逐AI内容,爱奇艺先出手了
大数据·人工智能