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

相关推荐
且从容.2 小时前
ubuntu安装flink
linux·ubuntu·flink
爱和冰阔落3 小时前
【Linux网络】TCP 服务器如何并发处理多个客户端?从 fork、僵尸进程到双重 fork
linux·运维·服务器·网络
程序员沉梦听雨3 小时前
WSL2的安装与使用
linux·wsl
微小的鱼4 小时前
Linux的渲染与显示系统链路
android·java·linux
lisanmengmeng4 小时前
alertmanger 标签 rules 打上分组标签
linux·运维·服务器
Android系统攻城狮5 小时前
Linux FFmpeg深度解析之av_write_frame调用流程与实战(三十三)
linux·运维·服务器·ffmpeg·音视频进阶·ffmpeg音视频
Linux-lucky16 小时前
45-Linux学习之旅之防火墙与WEB加固
linux·前端·网络·学习·ubuntu
禁默17 小时前
启元 Q1 二次开发实践:Ubuntu 部署与仿真验证,从 PrimeConsole 到 ROS 2 Humble + RViz
linux·运维·ubuntu
skywalk816317 小时前
把 去也网站 从 Ubuntu 搬到 FreeBSD:一次 Service Jail + nginx 的部署实录
linux·运维·nginx·ubuntu·freebsd
爱莉希雅&&&19 小时前
GitLab 完整学习笔记
linux·运维·服务器