深度了解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.验证

相关推荐
非极限码农3 小时前
Neo4j图数据库上手指南
大数据·数据库·数据分析·neo4j
莫叫石榴姐5 小时前
SQL百题斩:从入门到精通,一站式解锁数据世界
大数据·数据仓库·sql·面试·职场和发展
Hello.Reader5 小时前
Flink 状态后端(State Backends)实战原理、选型、配置与调优
大数据·flink
dundunmm8 小时前
【每天一个知识点】[特殊字符] 大数据的定义及单位
大数据
IT森林里的程序猿8 小时前
基于Hadoop的京东电商平台手机推荐系统的设计与实现
大数据·hadoop·智能手机
笨蛋少年派9 小时前
MapReduce简介
大数据·mapreduce
秃头菜狗9 小时前
十四、运行经典案例 wordcount
大数据·linux·hadoop
INFINI Labs9 小时前
Elasticsearch 备份:方案篇
大数据·elasticsearch·搜索引擎·gateway·snapshot·backup·ccr
Java战神9 小时前
Hadoop
大数据·hadoop·分布式
望获linux10 小时前
【实时Linux实战系列】实时系统的可观测性:Prometheus 与 Grafana 集成
大数据·linux·服务器·开发语言·网络·操作系统