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
相关推荐
一只数据集4 小时前
全尺寸人形机器人灵巧手力觉触觉数据集-2908条ROSbag数据覆盖14大应用场景深度解析
大数据·人工智能·算法·机器人
扑兔AI5 小时前
B2B销售线索挖掘效率提升的技术实践:基于工商公开数据的客源筛选与竞品分析架构
大数据·人工智能·架构
小羊Yveesss6 小时前
从自动化到自主协同:2026年AIOps 2.0赋能DevOps的变革之路
大数据·自动化·devops
逸Y 仙X7 小时前
文章二十七:ElasticSearch ES查询模板(Search Template)高效复用实战
java·大数据·数据库·elasticsearch·搜索引擎·全文检索
MY_TEUCK7 小时前
【git工具篇】Git 常用实战手册:从基础命令到分支冲突解决(开发实战版)
大数据·git
DavidTaozhe7 小时前
一文搞懂外汇接口怎么实时更新美元汇率
大数据·python
大大大大晴天️8 小时前
浅聊Hadoop集群的主流安全方案(LDAP+Kerberos+Ranger)
大数据·hadoop·安全
好赞科技9 小时前
2026年最佳健身小程序推荐榜单,帮你解锁智能运动新体验
大数据·微信小程序
小仙女的小稀罕9 小时前
培训要点写不完不会整理?规范培训转待办可这样操作
大数据·人工智能·学习·自然语言处理·语音识别
蜘蛛小助理9 小时前
跨境电商不用买 ERP!蜘蛛表格搭建订单管理 + 物流跟踪 + 财务对账一体化系统
大数据·人工智能·ai·多维表格·蜘蛛表格