通过yarn提交perjob的flink任务设置内存和cpu
时间: 2023-05-27 12:02:09 浏览: 96
在使用yarn提交perjob的flink任务时,可以通过以下方式设置内存和CPU:
1. 通过--yarn-properties参数设置yarn的参数。示例命令:
```
yarn per-job -m 4g -yD yarn.app.mapreduce.am.resource.cpu-vcores=2 -yD yarn.app.mapreduce.am.resource.memory-mb=4096
```
上述命令设置了flink任务的内存为4G,yarn的CPU核心数为2,yarn的内存为4096M。可以根据实际需要进行修改。
2. 通过flink-conf.yaml文件设置flink的参数。示例内容:
```
jobmanager.memory.process.size: 1024m
taskmanager.memory.process.size: 2048m
```
上述设置将jobmanager的内存设置为1G,taskmanager的内存设置为2G。可以根据实际需要进行修改。
注意:以上两种方式只能选择其中一种进行设置,否则会出现参数冲突的问题。
相关问题
yarn分配给任务的内存和cpu,和spark内部设置的内存和cpu有区别么
是的,YARN分配给任务的内存和CPU资源是由YARN的资源管理器负责管理的,而Spark内部设置的内存和CPU资源则是由Spark执行引擎负责管理的。这两种资源管理方式有一些区别:
1. 内存分配方式不同:YARN管理的内存是指Container可用的内存,而Spark管理的内存是指Executor可用的内存。在YARN中,任务运行在Container中,Container所拥有的内存会被任务共享。而在Spark中,Executor是独立的进程,它拥有自己的内存空间。
2. CPU分配方式不同:YARN管理的CPU是指Container可用的CPU核数,而Spark管理的CPU是指Executor可用的CPU核数。在YARN中,任务运行在Container中,Container所拥有的CPU核数会被任务共享。而在Spark中,Executor是独立的进程,它拥有自己的CPU核数。
3. 资源管理策略不同:YARN的资源管理器采用的是资源公平分配策略,而Spark的资源管理器采用的是动态资源分配策略。在YARN中,每个Container被分配到的资源是相同的,而在Spark中,每个Executor被分配到的资源是根据任务的需求进行动态调整的。
因此,YARN分配给任务的内存和CPU和Spark内部设置的内存和CPU有一定的区别。在实际应用中,需要根据任务的需求和集群的资源情况来进行调整,以达到最优的性能和资源利用率。
flink提交任务到yarn命令
提交Flink任务到YARN的命令如下:
```
./bin/flink run -m yarn-cluster -yn 2 -yjm 1024 -ytm 1024 examples/streaming/WordCount.jar
```
其中:
- `-m`:指定Flink集群的地址,这里使用yarn-cluster模式。
- `-yn`:指定YARN节点的数量,这里指定2个节点。
- `-yjm`:指定YARN上JobManager的内存大小,这里为1G。
- `-ytm`:指定YARN上TaskManager的内存大小,这里为1G。
- `examples/streaming/WordCount.jar`:指定要提交的Flink任务的jar包路径。
需要注意的是,提交任务前需要先启动YARN集群和Flink集群。同时,需要将Flink的lib目录下的所有jar包上传到YARN的HDFS上,以便在任务运行时能够访问到这些依赖库。