Flink的Standalone部署实战

在Flink是通用的框架,以混合和匹配的方式支持部署不同场景,而Standalone单机部署方便快速部署,记录本地部署过程,方便备查。

环境要求

1)JDK1.8及以上
2)flink-1.14.3
3)CentOS7

Flink相关信息可到 Flink官网下载和查看相关信息。

第一步、下载并解压

推荐使用 wget 方式,本次选择的是版本 flink-1.14.3-bin-scala_2.12.tgz,下载并解压,执行以下命令。

// 下载
wget https://archive.apache.org/dist/flink/flink-1.14.3/flink-1.14.3-bin-scala_2.12.tgz
// opt下创建文件夹
mkdir /opt/flink
// 解压到opt下目录
tar -zxvf flink-1.14.3-bin-scala_2.12.tgz -C /opt/flink/

下载界面如下图所示。
在这里插入图片描述

第二步、配置环境变量

进入环境变量配置文件profile, 即 vi /etc/profile,添加以下内容。

#flink
export Flink_HOME=/opt/flink/flink-1.14.3/
# 将flink路径添加到PATH路径下
export PATH=$JMETER/bin/:$PATH:$Flink_HOME/bin

:wq 保存配置信息,主要要刷新环境变量

// 刷新环境变量
source /etc/profile
// 查看安装位置
which flink
// 进入到bin目录下,启动
start-cluster.sh
// 查看flink进程
ps -ef | grep flink
// 测试
jps

执行以上步骤,则表示flink已经启动成功,执行结果如下图所示。
在这里插入图片描述
但此时在浏览器访问 http://192.168.184.137:8081/#/overview,其中 192.168.184.137为虚拟机的IP地址,还无法进入flink控制台。
在这里插入图片描述

第三步、修改虚拟机配置

此时仍需要修改连接的配置信息,首先关闭flink服务,并在 配置 flink-conf.yaml 放开默认8081端口和绑定的地址。

// 在bin目录下,终止flink启动
stop-cluster.sh
// 打开配置文件
vi /opt/flink/flink-1.14.3/conf/flink-conf.yaml 

放开注释信息,如下图所示。
在这里插入图片描述
注意:必须将端口添加到防火墙的信任列表,并刷新

// 添加防火墙
firewall-cmd --zone=public --add-port=8081/tcp --permanent
firewall-cmd --reload

此时浏览器再次访问 http://192.168.184.137:8081/#/overview,即可进入控制台,如下图所示。
在这里插入图片描述

第四步、启动作业流

数据输入需要使用 nc 命令,可提前yum安装。

// 安装nc
yum install nc

一步步安装即可。
在这里插入图片描述
配置文件(/opt/flink/flink-1.14.3/conf/flink-conf.yaml)中添加以下内容。

// 打开配置文件
vi /opt/flink/flink-1.14.3/conf/flink-conf.yaml
// 添加以下信息
#taskmanager的机器地址,集群设置为当前机器所在的地址
taskmanager.host: flink_no1

在这里插入图片描述
配置文件(/opt/flink/flink-1.14.3/conf/workers)中添加host信息,如下所示。

// 打开配置文件
vi /opt/flink/flink-1.14.3/conf/workers
// 添加worker信息
flink_no1
// 在bin目录下,终止flink启动
stop-cluster.sh
// 启动
start-cluster.sh

以上即Flink的Standalone部署过程,有问题可留言交流!

异常处理

【1】错误信息
org.apache.flink.util.FlinkException: TaskExecutor akka.tcp://flink@192.168.184.137:34207/user/rpc/taskmanager_0 has no more allocated slots for job 8aa6239dce488f7b9a9bb237343871a6.
处理方案:
standalone模式,需要指定TaskManager主机的地址

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/77968.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

XXL-JOB学习笔记——调度中心

集群部署配置 3.1.服务启动 XXL-JOB的集群部署非常简单,只需要注意两点: 集群节点都连接的是同一个数据库。 多台机器部署时,需要统一系统时间,如果是单个机器部署,则不用管这条。 现在是在同一台机器中,…

Vue--》打造个性化医疗服务的医院预约系统(五)

今天开始使用 vue3 + ts 搭建一个医院预约系统的前台页面,因为文章会将项目的每一个地方代码的书写都会讲解到,所以本项目会分成好几篇文章进行讲解,我会在最后一篇文章中会将项目代码开源到我的GithHub上,大家可以自行去进行下载运行,希望本文章对有帮助的朋友们能多多关…

【MySQL--->表的操作】

文章目录 [TOC](文章目录) 一、创建表二、查看表三、修改表四、删除表drop table 表名; ![在这里插入图片描述](https://img-blog.csdnimg.cn/15227b8335364d41bd01b4b4dd83ee55.png) 一、创建表 语句格式:create table 表名(列名 类型,…)字符集 校验规则 存储引擎;字符集和校…

jmeter中用户参数和用户定义的变量的区别

如果使用jmeter做过参数化的人都知道,参数化的方式有多种,其中一种就是使用用户定义的变量,还有一种是使用用户参数。那么,这两个有什么异同呢? 一、先说相同的点: 1、都可以参数化,以供sample…

tsconfig.json和jsconfig.json配置

{// 编译选项"compilerOptions": {// 生成代码的语言版本:将我们写的 TS 代码编译成哪个版本的 JS 代码// 命令行: tsc --target es5 11-测试TS配置文件.ts"target": "es5",// 指定要包含在编译中的 library"lib&quo…

(三)Unity开发Vision Pro——入门

3.入门 1.入门 本节涵盖了几个重要主题,可帮助您加快visionOS 平台开发速度。在这里,您将找到构建第一个 Unity PolySpatial XR 应用程序的分步指南的链接,以及 PolySpatial XR 开发时的一些开发最佳实践。 2.开发与迭代 有关先决条件、开…

Three.js--》✨ 阳 光 dua 郎 大 男 孩 ✨——阿伟的自述

不要让鲲流太嚣张,我们杰流才是最弔的 ———— 阳光dua郎大男孩 目录 项目搭建 初始化three.js基础代码 获取项目所需素材 加载图片语音模型 今天简单实现一个three.js的3D故事小游戏,加强自己对three知识的掌握与学习,只有在项目中才能…

LVS负载均衡群集部署(LVS-NAT模型实例)

一、集群 1.1集群的含义 Cluster,集群、群集,为解决某个特定问题将多台计算机组合起来形成的单个系统。 由多台主机构成,但对外只表现为一个整体。 1.2群集的三种类型 1.2.1负载均衡群集 LB: Load Balancing,负载均衡&#x…

129.【Spring 注解 IOC】

Spring 注解 (一)、组件注册1. Configuration 与 Bean 容器注册组件(1).无注解注入方式(2).注解注入方式 2. ComponentScan 自动扫描组件和自动扫描规则(1).无注解扫描方式(2).注解扫描注入方式(3).指定扫描或不扫描的包 (过滤) 3. 自定义TypeFilter指定过滤规则 Filter(1).自定…

JDBC API

DriverManager : 注册驱动 Class.forName("com.mysql.jdbc.Driver"); 获取数据库连接 url : 连接路径 语法:jdbc:mysql://ip地址(域名):端口号/数据库名称?参数键值对1&参数键值对2… 示例:jdbc:mysql://127.0.0.1:3306/db1 细…

IOS开发-XCode14介绍与入门

IOS开发-XCode14介绍与入门 1. XCODE14的小吐槽2. XCODE的功能bar一览3. XCODE项目配置一览4. XCODE更改DEBUG/RELEASE模式5. XCODE单元测试 1. XCODE14的小吐槽 iOS开发工具一直有个毛病,就是新版本的开发工具的总会有一些奇奇怪怪的bug。比如在我的Mac-Pro&#…

当众讲话培训的需求分析

标题:当众讲话培训的需求分析 摘要:当众讲话是现代社会中一项重要的技能,对于个人和职业发展都具有重要意义。然而,许多人面临着当众讲话的困难和挑战。本论文旨在分析当众讲话培训的需求,探讨为什么人们需要这种培训…

Java版工程项目管理系统平台+企业工程系统源码+助力工程企业实现数字化管理 em

​ 鸿鹄工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离构建工程项目管理系统 1. 项目背景 一、随着公司的快速发展,企业人员和经营规模不断壮大。为了提高工程管理效率、减轻劳动强度、提高信息处理速度和准确性,公司对内部…

vueuse常用方法

useDateFormat 时间格式化 <script setup lang"ts">import { useNow, useDateFormat } from vueuse/coreconst formatted useDateFormat(useNow(), YYYY-MM-DD HH:mm:ss)</script><template><div>{{ formatted }}</div> </templa…

【实际开发21】- 项目部署

目录 1. 项目打包方式就两种 : war、jar 1. Windows 环境运行 Jar 包 2. Windows 后台运行 jar 包 1. cmd 下执行方式 2. bat 批处理方式 - ( Batch ) 3. 启动 : 在 xx.jar 同级目录下建立 run.bat 文件 4. 项目部署打包 忽略 test 文件 2. CICD 自动化部署 3. 代码质…

讯飞星火、文心一言和通义千问同时编“贪吃蛇”游戏,谁会胜出?

同时向讯飞星火、文心一言和通义千问三个国产AI模型提个相同的问题&#xff1a; “python 写一个贪吃蛇的游戏代码” 看哪一家AI写的程序直接能用&#xff0c;谁就胜出&#xff01; 讯飞星火 讯飞星火给出的代码&#xff1a; import pygame import sys import random# 初…

分布式 - 消息队列Kafka:Kafka生产者发送消息的分区策略

文章目录 01. Kafka 分区的作用02. PartitionInfo 分区源码03. Partitioner 分区器接口源码04. 自定义分区器05. 默认分区器 DefaultPartitioner06. 随机分区分配 RoundRobinPartitioner07. 黏性随机分区分配 UniformStickyPartitioner08. 为什么Kafka 2.4 版本后引入黏性分区策…

ViewUI表格Table嵌套From表单-动态校验数据合法性的解决方法

项目场景&#xff1a; 项目需求&#xff1a;在表格中实现动态加减数据&#xff0c;并且每行表格内的输入框&#xff0c;都要动态校验数据&#xff0c;校验不通过&#xff0c;不让提交数据&#xff0c;并且由于表格内部空间较小&#xff0c;我仅保留红边框提示&#xff0c;文字…

【JVM】Java内存泄露的排查思路?

文章目录 Java内存为什么会泄露&#xff1f;java内存泄露的排查思路 Java内存为什么会泄露&#xff1f; Java内存泄露&#xff08;Memory Leak&#xff09;是指在Java程序中&#xff0c;无用的对象占用了堆内存&#xff0c;但无法被垃圾回收器回收释放&#xff0c;从而导致可用…

根据Dockerfile创建容器案例讲解

-f为dokerfile的路径&#xff0c; -t为新镜像的名称及版本。 后面这个点是寻址路径。