window通过Cygwin部署flink-1.15.0失败
按理来说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
添加双网卡:
网卡1:选择 NAT(默认模式,用于访问外网)。
网卡2:选择 Host-Only Adapter(用于与宿主机通信)。
若没有 Host-Only 网络,需先在 VirtualBox 全局设置中创建:
管理 → 主机网络管理器 → 创建 → 默认使用 192.168.56.0/24 网段
2、启动虚拟机并登录
使用 root 或具有 sudo 权限的账户登录,查看网络
nmcli device status
3、配置 Host-Only 网卡(静态 IP)
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、验证网络配置
ip addr show enp0s8
输出应包含 192.168.56.100/24。
三、宿主机与虚拟机互通测试
1. 宿主机 ping 虚拟机
在宿主机执行:
ping 192.168.56.100
2. 虚拟机 ping 宿主机
ping 192.168.56.1 # Host-Only 网卡的宿主机 IP
若成功,表示虚拟机到宿主机通信正常。
3.防火墙
若宿主机或虚拟机防火墙阻止 ICMP,需放行
虚拟机配置
sudo firewall-cmd --permanent --add-icmp-block-inversion
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload
宿主机设置
Windows:
打开 控制面板 → Windows Defender 防火墙 → 高级设置 → 入站规则 → 启用 文件和打印机共享(回显请求 - ICMPv4-In)
四、安装启动flink-1.15.0
下载 flink-1.15.0-bin-scala_2.12.tgz 包,可以从官网下载,不过下载的速度太慢了。
可以使用我的分享
链接:https://pan.baidu.com/s/1cja-lHRRrxubQO7X9SKlwg?pwd=kyzi
提取码:kyzi
上传包在/opt/下解压
tar -zxf flink-1.15.0-bin-scala_2.12.tgz
cd flink-1.15.0/bin
./start-cluster.sh
显示
Starting cluster.
Starting standalonesession daemon on host localhost.
Starting taskexecutor daemon on host localhost.
表示启动成功
不过还需要确认一下,可以通过JPS查看是否有两个组件
或者查看一下日志文件
cd /opt/flink-1.15.0/log/
tail *log
出现如下截图表示启动成功了
如果安装的带桌面的Centos,也可以访问
http://127.0.0.1:8081