如何搭建Linux环境下的flink本地集群

第一步,搭建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 1.17

这里是阿里镜像下载连接:apache-flink安装包下载_开源镜像站-阿里云

选择第一个 flink-1.14.2-bin-scala_2.12.tgz

下载完毕后,将其复制粘贴到 linux 中的home目录/你的用户名文件夹 之下

第三步,给 linux 安装 JDK11

在 lunux 命令行中,输入如下命令:

bash 复制代码
sudo apt update
bash 复制代码
sudo apt install openjdk-11-jdk

验证安装:

bash 复制代码
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地址

bash 复制代码
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地址放行

bash 复制代码
# 允许从 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 端口

bash 复制代码
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 集群了

使用 cd 命令,进入 flink 根目录

bash 复制代码
$ cd flink-1.17.2-bin-scala_2.12

开启集群

bash 复制代码
$ ./bin/start-cluster.sh

成功开启后会输出如下信息:

  1. Starting cluster.
  2. Starting standalonesession daemon on host.
  3. Starting taskexecutor daemon on host.

提交一个本地已经有的 jar 包作业

bash 复制代码
$ ./bin/flink run examples/streaming/WordCount.jar

查看作业运行效果:

bash 复制代码
$ tail log/flink-*-taskexecutor-*.out

输出如下:

  1. (nymph,1)
  2. (in,3)
  3. (thy,1)
  4. (orisons,1)
  5. (be,4)
  6. (all,2)
  7. (my,1)
  8. (sins,1)
  9. (remember,1)
  10. (d,4)

浏览器访问 localhost:8081 可以看到 flink 的 web UI

可以看到,windows下的浏览器可以正常访问到 linux 环境中的 flink 集群

相关推荐
挺6的还21 分钟前
25.线程概念和控制(二)
linux
您的通讯录好友38 分钟前
conda环境导出
linux·windows·conda
江畔独步2 小时前
Flink TaskManager日志时间与实际时间有偏差
大数据·flink
代码AC不AC2 小时前
【Linux】vim工具篇
linux·vim·工具详解
码农hbk2 小时前
Linux signal 图文详解(三)信号处理
linux·信号处理
bug攻城狮2 小时前
Skopeo 工具介绍与 CentOS 7 安装指南
linux·运维·centos
宇宙第一小趴菜2 小时前
08 修改自己的Centos的软件源
linux·运维·centos
bug攻城狮2 小时前
彻底禁用 CentOS 7.9 中 vi/vim 的滴滴声
linux·运维·服务器·centos·vim
XMYX-03 小时前
Linux 物理机如何区分 SSD 与 HDD ——以 DELL PERC H730 Mini 为例
linux·运维
轻松Ai享生活3 小时前
5 天学习 Linux Kernel 主要原理 | Day 3:内存管理与Swap机制
linux