深度了解flink Flink 本地运行Standalone模式

ops/2024/11/1 13:18:48/

环境准备

  • IDEA 必须
  • git 必须
  • maven 必须
  • jdk 1.8+ 必须
  • scala 2.12.7

源码下载

如果能访问github,下载github的源码(flink的代码托管网站)

git clone https://github.com/apache/flink.git

如果不能访问github,可以通过码云下载(国内的代码托管平台)

git clone https://gitee.com/apache/flink.git

flink tag出来的分支是release出来的版本,本次使用flink 1.19.1的tag,查看所有tag

 git tag 

check out出来1.19.1的tag

#从tagrelease-1.19.1 创建新的本地分支release-1.19.1_my
git checkout release-1.19.1 -b release-1.19.1_my

IDEA打开Flink项目

设置JDK版本

点击File—> Project Structure—>Project设置Jdk版本(如下图),jdk版本设置1.8或者1.8之后的版本

设置scala版本

点击File—> Project Structure—>Platfrom Settings —> Global Libraries—>ScalaSdk 设置scala版本(如下图)

添加scala sdk,然后选中所有的模块

源码编译

1.跳过测试

2.clean

3.install

然后就等待install结束,最后每个模块都是success,则install成功,就会出现flink的bin包,包含flink的lib和conf等

如果install失败,可以直接去flink官网下载对应的二进制包(Apache Download Mirrors)

编译或者下载flink二进制包解压后的目录如下

在本地创建a-lib和a-conf两个目录,便于后续使用

  • a-lib:将flink二进制包目录下的lib的包复制到该目录下
  • a-conf:将flink二进制包目录下的conf下文件复制到该目录下

本地运行

修改配置

修改a-conf下的config.yaml

################################################################################env.java.opts.all: --add-exports=java.base/sun.net.util=ALL-UNNAMED --add-exports=java.rmi/sun.rmi.registry=ALL-UNNAMED --add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED --add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED --add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED --add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED --add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED --add-exports=java.security.jgss/sun.security.krb5=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.text=ALL-UNNAMED --add-opens=java.base/java.time=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.locks=ALL-UNNAMEDjobmanager.resource-id: q1jobmanager.rpc.address: localhost# The RPC port where the JobManager is reachable.jobmanager.rpc.port: 6123jobmanager.bind-host: localhostjobmanager.memory.process.size: 1600mtaskmanager.bind-host: localhost
taskmanager.resource-id: q2#唯一标识 window下必须配置
taskmanager.cpu.cores: 1
#任务的堆内存
taskmanager.memory.task.heap.size: 512m
#托管内存
taskmanager.memory.managed.size: 512m
#网络内存(Network Memory)
taskmanager.memory.network.min: 128m
taskmanager.memory.network.max: 128m
#任务堆外内存
taskmanager.memory.task.off-heap.size: 0m
#框架内存
taskmanager.memory.framework.heap.size: 256m
#框架堆外内存
taskmanager.memory.framework.off-heap.size: 128m
#JVM Metaspace
taskmanager.memory.jvm-metaspace.size: 128m
#JVM 开销
taskmanager.memory.jvm-overhead.min: 128m
taskmanager.memory.jvm-overhead.max: 128m
#心跳参数
heartbeat.timeout: 50000
heartbeat.interval: 10000taskmanager.host: localhosttaskmanager.memory.process.size: 1728mtaskmanager.numberOfTaskSlots: 1# The parallelism used for programs that did not specify and other parallelism.parallelism.default: 1jobmanager.execution.failover-strategy: regionrest.address: localhostrest.bind-address: localhost

启动JobManager

1.搜索 StandaloneSessionClusterEntrypoint类

2.设置参数 右键选择Modify Run Configuration

3.配置启动参数

-c a-conf

4.添加jvm参数

-Dlog.file=./log/flink-jobmanager-1.local.log 
-Dlog4j.configuration=./a-conf/log4j.properties 
-Dlog4j.configurationFile=./a-conf/log4j.properties 
-Dlogback.configurationFile=./a-conf/logback.xml

5.添加需要用到lib

6.启动JobManager

7.验证

http://localhost:8081/#/job-manager/metrics

启动TaskManager

1.搜索TaskManagerRunner

2.找到TaskManagerRunner main方法,右键Modify Run Configuration

3.配置启动参数,和JobManager配置一样

4.添加jvm参数

-Dlog.file=./log/flink-taskmanager-1.local.log 
-Dlog4j.configuration=./a-conf/log4j.properties 
-Dlog4j.configurationFile=./a-conf/log4j.properties 
-Dlogback.configurationFile=./a-conf/logback.xml

5.添加需要用到lib,操作步骤和JobManager一致

6.启动TaskManagr

7.验证


http://www.ppmy.cn/ops/130147.html

相关文章

大数据之微服务注册、发现与熔断方案

大数据微服务注册、发现与熔断方案 介绍实现框架利用Spring Cloud实现微服务注册,发现,熔断实例? 一,介绍 大数据微服务注册、发现与熔断是微服务架构中的关键概念,它们各自在微服务架构中扮演着重要的角色。以下是对这…

SCI一区级 | Matlab实现SSA-TCN-LSTM-Attention多变量时间序列预测

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.基于SSA-TCN-LSTM-Attention麻雀搜索算法优化时间卷积长短期记忆神经网络融合注意力机制多变量时间序列预测,要求Matlab2023版以上,自注意力机制,一键单头注意力机制替换成多头注…

OpenCV中的坐标运算 [C#]

在C#语言中&#xff0c;可以使用OpenCV库进行坐标运算&#xff0c;包括平移、缩放、点到点的距离和点到线的距离。 从Nuget下载 OpenCvSharp4.Windows 下面是一些示例代码&#xff1a; 点到点的距离&#xff1a; using OpenCvSharp;/// <summary> /// 点到点距离 /// …

Kotlin协程分析之CoroutineScheduler-WorkQueue队列

WorkQueue WorkQueue是CoroutineScheduler调度器中Worker线程使用存储任务的容器。本身逻辑本简单。结合Kotlin协程分析之CoroutineScheduler文章一起看可以更好理解。 WorkQueue没有自动扩容的逻辑&#xff0c;满了是无法添加的&#xff0c;可以添加CPU型任务&#xff0c;也…

配置BGP与IGP交互和路由自动聚合示例

组网需求 如图所示&#xff0c;用户将网络划分为AS65008和AS65009&#xff0c;在AS65009内&#xff0c;使用IGP协议来计算路由&#xff08;该例使用OSPF做为IGP协议&#xff09;。要求实现两个AS之间的互相通信。 配置思路 采用如下的思路配置BGP与IGP交互&#xff1a; 在AR…

各种本地商家和服务,尽在同城小程序

随着智能手机的普及和互联网技术的快速发展&#xff0c;越来越多的行业开始向数字化转型。我们常常需要在不同的应用程序之间切换&#xff0c;以寻找本地的服务和商家。装修、外卖、旅游、婚庆……传统上&#xff0c;每个行业都有各自独立的APP&#xff0c;这种分散的模式既不方…

跨平台OFD、PDF文档预览UTS插件

〇、介绍 Seal-OfdReader是跨平台OFD文档预览原生插件&#xff0c;具有以下特点&#xff1a; 支持UniApp项目集成&#xff0c;也支持原生Android项目集成 非腾讯X5&#xff0c;无内核加载&#xff0c;高效率、稳定高可用 支持在线文档&#xff0c;也支持离线设备本地文档 支…

Spring Boot技术在校园社团管理中的高效应用

3系统分析 3.1可行性分析 通过对本校园社团信息管理系统实行的目的初步调查和分析&#xff0c;提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本校园社团信息管理系统采用SSM框架&#xff0c;JAVA作…