如何搭建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 集群

相关推荐
duangww3 小时前
部署sapui5应用到linux
linux·sap fiori
siriuuus3 小时前
Linux ssh/scp/sftp命令使用及免密登录配置
linux·ssh·sftp·scp
teacher伟大光荣且正确5 小时前
Linux 下编译openssl
linux·运维·服务器
dlz08365 小时前
--group-start/--group-end 能不能解决 OpenSSL 1.0 vs 1.1 的优先级问题?
linux·运维·服务器·软件需求
小池先生6 小时前
activemq延迟消息变成实时收到了?
linux·数据库·activemq
tryCbest7 小时前
Linux系统下安装使用Redis
linux·运维·redis
AuroBreeze8 小时前
xv6-2023 - primes Lab
linux·运维·服务器
DIY机器人工房8 小时前
NAT 模式、命令行版、桥接模式方式给ubuntu虚拟机配网步骤:
linux·网络协议·ubuntu·嵌入式·桥接模式·diy机器人工房
wdfk_prog9 小时前
[Linux]学习笔记系列 -- lib/sort.c 通用的排序库(Generic Sorting Library) 为内核提供标准的、高效的排序功能
linux·运维·c语言·笔记·stm32·学习·bug
黑马金牌编程10 小时前
简易分析慢 SQL 的流程和方法
linux·数据库·mysql·性能优化·性能分析·慢日志