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
相关推荐
梦里不知身是客1114 小时前
shuffle过程
大数据
星释14 小时前
Rust 练习册 80:Grains与位运算
大数据·算法·rust
练习时长一年15 小时前
git常用命令总结
大数据·git·elasticsearch
TDengine (老段)16 小时前
TDengine IDMP 重塑智慧水务运营(内附 Step by Step 步骤)
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
萤丰信息20 小时前
智慧园区能源革命:从“耗电黑洞”到零碳样本的蜕变
java·大数据·人工智能·科技·安全·能源·智慧园区
百***864621 小时前
新版 WSL2 2.0 设置 Windows 和 WSL 镜像网络教程
windows
qq_479875431 天前
X-Macros(1)
linux·服务器·windows
王 富贵1 天前
Conda常用命令大全
windows·conda
weixin_457760001 天前
Python 数据结构
数据结构·windows·python
q***13611 天前
Windows操作系统部署Tomcat详细讲解
java·windows·tomcat