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
相关推荐
Abigail_chow5 小时前
EXCEL如何快速批量给两字姓名中间加空格
windows·microsoft·excel·学习方法·政务
zdkdchao7 小时前
hbase资源和数据权限控制
大数据·数据库·hbase
归去_来兮7 小时前
知识图谱技术概述
大数据·人工智能·知识图谱
love530love7 小时前
【笔记】在 MSYS2(MINGW64)中正确安装 Rust
运维·开发语言·人工智能·windows·笔记·python·rust
青春之我_XP8 小时前
【基于阿里云搭建数据仓库(离线)】Data Studio创建资源与函数
大数据·数据仓库·sql·dataworks·maxcompute·data studio
代码搬运媛9 小时前
“packageManager“: “[email protected]“ 配置如何正确启动项目?
windows·webpack
网安INF9 小时前
CVE-2020-17518源码分析与漏洞复现(Flink 路径遍历)
java·web安全·网络安全·flink·漏洞
小道士写程序9 小时前
Qt 5.12 上读取 .xlsx 文件(Windows 平台)
开发语言·windows·qt
Mikhail_G10 小时前
Python应用函数调用(二)
大数据·运维·开发语言·python·数据分析
黑客笔记11 小时前
攻防世界-XCTF-Web安全最佳刷题路线
大数据·安全·web安全