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

环境准备

  • 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-UNNAMED

jobmanager.resource-id: q1


jobmanager.rpc.address: localhost

# The RPC port where the JobManager is reachable.

jobmanager.rpc.port: 6123

jobmanager.bind-host: localhost

jobmanager.memory.process.size: 1600m



taskmanager.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: 10000


taskmanager.host: localhost


taskmanager.memory.process.size: 1728m


taskmanager.numberOfTaskSlots: 1

# The parallelism used for programs that did not specify and other parallelism.

parallelism.default: 1

jobmanager.execution.failover-strategy: region

rest.address: localhost

rest.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.验证

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

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

相关文章

【Nginx系列】Nginx 中的`proxy_set_header`指令:Host 字段的区别与联系

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

SRS:构建实时免费视频服务器的全方位指南

SRS(Simple Realtime Server)是一个开源的、基于MIT协议的实时视频服务器,以其简单、高效而著称。它支持多种流媒体协议,包括RTMP、WebRTC、HLS、HTTP-FLV、SRT、MPEG-DASH和GB28181等,使其成为直播和WebRTC领域的理想…

混合搜索与多重嵌入:一次有趣又毛茸茸的猫咪搜索之旅!(一)

作者:来自 Elastic Jo Ann de Leon 演示如何在多个嵌入(文本和图像)上实现不同类型的搜索 - 词汇、向量和混合。它使用一个简单而有趣的猫搜索应用程序。 你知道 Elastic 可以用作强大的向量数据库吗?在本博客中,我们…

二:Linux学习笔记(第一阶段)-- Linux命令

目录 Linux注意事项: Linux目录 Linux系统基础命令 1. 文件和目录操作 2. 文件查看和编辑 3. 文件权限和所有权 4. 系统信息 5. 网络命令 6. 文件查找 7. 压缩和解压缩 8. 系统管理 Linux注意事项: 严格区分大小写一切皆文件windows下的程序不…

Java设计模式之代理模式(一)

什么是代理?可以理解为其他对象提供一种代理以控制对这个对象的访问。 举个例子,生活中的外卖平台,店铺是制作外卖的,然后放到平台上售卖。这里的店铺就是真实角色,为了能够让店铺不用担心销售等问题,从而…

WebSocket 连接频繁断开的问题及解决方案

文章目录 WebSocket 连接频繁断开的问题及解决方案1. 引言2. 什么是 WebSocket?2.1 WebSocket 的优势2.2 WebSocket 的工作原理 3. WebSocket 连接频繁断开的常见原因3.1 服务器端问题3.1.1 服务器负载过高3.1.2 服务器配置不当3.1.3 超时设置 3.2 网络问题3.2.1 网…

字符串逆序(c语言)

错误代码 #include<stdio.h>//字符串逆序 void reverse(char arr[], int n) {int j 0;//采用中间值法//访问数组中第一个元素和最后一个元素//交换他们的值&#xff0c;从而完成了字符串逆序//所以这个需要临时变量for (j 0; j < n / 2; j){char temp arr[j];arr[…

elcipse工具使用记录

安装 创建项目并运行Helloword 没有显示console? Window–>Show View–>Console 快捷键的积累 代码提示功能 windows->prference->java->Content Assist, 修改Auto…,内容为.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.

头歌——数据库系统原理(数据的简单查询)

文章目录 第1关&#xff1a;基本 SELECT 查询代码 第2关&#xff1a;带限制条件的查询和表达式查询代码 第3关&#xff1a;使用 WHERE 语句进行检索代码 第1关&#xff1a;基本 SELECT 查询 相关知识 为了完成本关任务&#xff0c;你需要掌握&#xff1a; 如何获取数据表中指…

关于我、重生到500年前凭借C语言改变世界科技vlog.13——深入理解指针(3)

文章目录 1.字符指针变量2.数组指针变量3.函数指针变量4.函数指针数组5.二维数组传参本质6.拓展补充希望读者们多多三连支持小编会继续更新你们的鼓励就是我前进的动力&#xff01; 本章节接着学习常见的指针变量类型 1.字符指针变量 字符指针变量&#xff0c;顾名思义就是字…

贪心算法入门(一)

1.什么是贪心算法&#xff1f; 贪心算法是一种解决问题的策略&#xff0c;它将复杂的问题分解为若干个步骤&#xff0c;并在每一步都选择当前最优的解决方案&#xff0c;最终希望能得到全局最优解。这种策略的核心在于“最优”二字&#xff0c;意味着我们追求的是以最少的时间和…

MacBook 如何设置打开json格式文件的默认程序是vs code

首先右键选中文件&#xff0c;然后选中显示简介 然后选中打开方式 设置成vs code

宝塔使用clickhouse踩坑

前言 最近有个物联网项目,需要存储物联网终端发送过来的信息(类似log日志,但又要存储在数据库里,方便后期聚合统计),本来想写文件的奈何客户要求聚合统计,所以只能用数据库才能达到更高的计算效率,当然mysql对这种日志型数据库并没有优势,数据量上去后反而不利于计算…

ML 系列:第 18 部 - 高级概率论:条件概率、随机变量和概率分布

文章目录 一、说明二、关于条件概率2.1 为什么我们说条件概率&#xff1f;2.2 为什么条件概率在统计学中很重要 三、 随机变量的定义3.1 定义3.2 条件概率中的随机变量 四、概率分布的定义五、结论 一、说明 条件概率是极其重要的概率概念&#xff0c;它是因果关系的数学表述&…

十个常见的软件测试面试题,拿走不谢

所有面试问题一般建议先总后分的方式来回答&#xff0c;这样可以让面试官感觉逻辑性很强。 1. 自我介绍 之所以让我们自我介绍&#xff0c;其实是面试官想找一些时间来看简历&#xff0c;所以自我介绍不用太长的时间&#xff0c;1-2分 钟即可。 自我介绍一般按以下方式进行介…

软考高级中哪个好考?软考5个高级资格详细分析!

计算机软件资格考试是由国家人力资源和社会保障部、工业和信息化部领导下的国家级考试&#xff0c;这个考试既是职业资格考试&#xff0c;又是职称资格考试。 软考专业资格层次对应表 计算机软件资格考试设置了27个专业资格&#xff0c;涵盖5个专业领域&#xff0c;3个级别层次…

vi —— 终端中的编辑器

目标 vi 简介打开和新建文件三种工作模式常用命令分屏命令常用命令速查图 01. vi 简介 1.1 学习 vi 的目的 在工作中&#xff0c;要对 服务器 上的文件进行 简单 的修改&#xff0c;可以使用 ssh 远程登录到服务器上&#xff0c;并且使用 vi 进行快速的编辑即可常见需要修改…

sklearn|机器学习:决策树(一)

文章目录 sklearn&#xff5c;机器学习&#xff1a;决策树&#xff08;一&#xff09;&#xff08;一&#xff09;概述&#xff08;二&#xff09;实战1. 环境配置2. sklearn 中的决策树&#xff08;1&#xff09;模块 sklearn.tree&#xff08;2&#xff09;sklearn 基本建模流…

React基础语法

1.React介绍 React由Meta公司开发&#xff0c;是一个用于构建Web和原生交互界面的库 1.1 React优势 相较于传统基于DOM开发的优势 1.组件化的开发方式 2.不错的性能 相较于其他前端框架的优势 1.丰富的生态 2.跨平台支持 1.2React的时长情况 全球最流行&#xff0c;大厂…

docker安装、设置非sudo执行、卸载

安装 sudo snap install docker 设置docker非sudo执行 sudo groupadd docker sudo usermod -aG docker $USER newgrp docker sudo chown root:docker /var/run/docker.sock 卸载docker 1.删除docker及安装时自动安装的所有包 apt-get autoremove docker docker-ce docker-…