当前位置: 首页 > news >正文

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

我用的是 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

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

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

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

$ ./bin/flink run examples/streaming/WordCount.jar

查看作业运行效果:

$ 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 集群

http://www.lryc.cn/news/599672.html

相关文章:

  • 为什么选择EasyGBS?
  • 《解锁前端数据持久化与高效查询:IndexedDB深度剖析》
  • vue3单页面连接多个websocket并实现断线重连功能
  • TDengine 转化函数 TO_TIMESTAMP 用户手册
  • 比特币技术简史 第八章:扩展性解决方案 - 闪电网络与隔离见证
  • 软件工程:软件需求
  • Ethereum:告别 personal API,拥抱 Geth 的独立签名器 Clef
  • CRM 系统:实现商机全流程管理的关键
  • Mkdocs相关插件推荐(原创+合作)
  • 力扣Hot100疑难杂症汇总
  • Java环境配置之各类组件下载安装教程整理(jdk、idea、git、maven、mysql、redis)
  • 如何序列化和反序列化动态 XmlElement ?
  • 【SSL证书校验问题】通过 monkey-patch 关掉 SSL 证书校验
  • Linux725 磁盘阵列RAID0 RAID1
  • [python][flask]Flask-Login 使用详解
  • win通过OpenSSL生成.ssh id_rsa密钥方法
  • 基于libhv实现的TCP Client Server支持同步,异步传输 (C++11)
  • QT开发技术【串口和C++20协程,实现循环发送、暂停、恢复、停止】
  • 上位机知识篇---Jetson Nano的深度学习GPU推理
  • TCP模型,mqtt协议01 day41
  • 【算法-图论】图的存储
  • 嵌入式——C语言:指针①
  • Web攻防-业务逻辑篇密码找回重定向目标响应包检验流程跳过回显泄露验证枚举
  • Go 官方 Elasticsearch 客户端 v9 快速上手与进阶实践*
  • 深度学习day02--神经网络(前三节)
  • 安装本地python文件到site-packages
  • STM32基础知识学习笔记:ICODE、DCODE、DMA等常见名词的解释
  • 【C++详解】模板进阶 非类型模板参数,函数模板特化,类模板全特化、偏特化,模板分离编译
  • 在 .NET 中使用 Base64 时容易踩的坑总结
  • vscode npm run build打包报ELIFECYCLE