第一步,搭建Linux環境
這里我使用的是 WSL2
安裝前,先用管理員打開終端,執行以下三條命令,目的是開啟安裝 WSL2所需要的環境
//開啟適用于windows的Linux子系統
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
//開啟虛擬機平臺
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
//開啟hyper-v
bcdedit /set hypervisorlaunchtype auto
環境準備好后,更新wsl內核包
wsl --update
指定 wsl 版本
# 將 WSL 默認版本設置為 WSL 2
wsl --set-default-version 2
最后,輸入指令安裝(windows 會從微軟商店下載,可能會被墻,建議開魔法,沒有的話也可以直接去搜索Ubuntu安裝包進行安裝)
可能會提示你輸入用戶名和密碼,要記住自己輸入的用戶名密碼
wsl --install -d Ubuntu
安裝完畢后,檢驗安裝:
wsl -l -v
如果輸出以下信息,則表示安裝成功
NAME STATE VERSION
* Ubuntu-20.04 Running 2
點擊開始界面中最近添加的 Ubuntu 打開,即可彈出可供 linux 操作的命令框
另外,本地磁盤會多一個 Linux 目錄,如果需要和 Linux 系統進行文件傳輸可以直接復制粘貼
第二步,下載 flink?
我用的是 flink 1.17
這里是阿里鏡像下載連接:apache-flink安裝包下載_開源鏡像站-阿里云
選擇第一個 flink-1.14.2-bin-scala_2.12.tgz
下載完畢后,將其復制粘貼到 linux 中的home目錄/你的用戶名文件夾 之下?
第三步,給 linux 安裝 JDK11
在 lunux 命令行中,輸入如下命令:
sudo apt update
sudo apt install openjdk-11-jdk
驗證安裝:
java -version
顯示如下信息則安裝成功
openjdk version "11.0.18" 2023-01-17 OpenJDK Runtime Environment (build 11.0.18+10-post-Ubuntu-0ubuntu122.04) OpenJDK 64-Bit Server VM (build 11.0.18+10-post-Ubuntu-0ubuntu122.04, mixed mode, sharing)
第四步,讓防火墻對 WSL2 放行
首先在 linux 環境中查看自己與 windows 相連的主機IP地址
ip addr
flinkuser@LAPTOP-F32HCITG:~/flink-1.17.2$ ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet 10.255.255.254/32 brd 10.255.255.254 scope global lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:15:5d:27:1a:4b brd ff:ff:ff:ff:ff:ff inet 172.23.168.153/20 brd 172.23.175.255 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::215:5dff:fe27:1a4b/64 scope link valid_lft forever preferred_lft forever
可以看到我的IP地址是 172.23.168.153
管理員啟動 powerShell 讓防火墻給這個IP地址放行
# 允許從 Windows 訪問 WSL2 的 172.23.168.153 所有端口(TCP 協議)
New-NetFirewallRule -DisplayName "WSL2-IP-All-Ports" `-Direction Inbound `-LocalAddress 172.23.168.153 `-Protocol TCP `-Action Allow
放行后,使用windows 的 powershell 測試一下能否正常訪問 linux 端口
Test-NetConnection -ComputerName 172.23.168.153 -Port 8888
PS C:\Windows\system32> Test-NetConnection -ComputerName 172.23.168.153 -Port 8888 警告: TCP connect to (172.23.168.153 : 8888) failed ComputerName : 172.23.168.153 RemoteAddress : 172.23.168.153 RemotePort : 8888 InterfaceAlias : vEthernet (WSL (Hyper-V firewall)) SourceAddress : 172.23.160.1 PingSucceeded : True PingReplyDetails (RTT) : 0 ms TcpTestSucceeded : False
可以看到訪問成功,只不過我們沒往 8888 端口放東西,所以TcpTestSucceeded 是 flase
放行后 windows 就可以正常訪問運行在 Linux 上的 filnk 集群了
第五步,開啟 linux 本地 flink 集群
使用 cd 命令,進入 flink 根目錄
$ cd flink-1.17.2-bin-scala_2.12
開啟集群
$ ./bin/start-cluster.sh
成功開啟后會輸出如下信息:
Starting cluster.
Starting standalonesession daemon on host.
Starting taskexecutor daemon on host.
提交一個本地已經有的 jar 包作業
$ ./bin/flink run examples/streaming/WordCount.jar
查看作業運行效果:
$ tail log/flink-*-taskexecutor-*.out
輸出如下:
(nymph,1)
(in,3)
(thy,1)
(orisons,1)
(be,4)
(all,2)
(my,1)
(sins,1)
(remember,1)
(d,4)
瀏覽器訪問 localhost:8081 可以看到 flink 的 web UI
可以看到,windows下的瀏覽器可以正常訪問到 linux 環境中的 flink 集群