• Hadoop:yarn资源配置


    不管是spark on yarn还是flink on yarn都是将任务提交后,在yarn上申请运行任务的容器,这个容器就是container,container由内存跟cpu核组成

    举个例子:公司5台服务器,每台服务器是16核,64G内存,一般会预留20%内存,64x0.8=51.2,内存就按50算,如果机器性能很好,1物理cpu核可以模拟2虚拟核使用,这是yarn自己引入的概念,那就是16x2=32个vcores

    yarn.nodemanager.resource.memory-mb:物理服务器上能用的最大内存,50x1024=51200

    yarn.nodemanager.resource.cpu-vcores:服务器上可利用的最大cpu数,32个

    yarn.scheduler.minimum-allocation-vcores:每个container最小虚拟核

    yarn.scheduler.maximum-allocation-vcores:每个container最大虚拟核,

    如果设置min_vcoure = 1,那么最多可以跑32/1=32个container。

    如果设置max_vcoure =4 ,那么最少container是32/4=8个container。

    yarn.scheduler.minimum-allocation-mb:每个container最小内存

    yarn.scheduler.maximum-allocation-mb:每个container最大内存,默认8G

    如果设置min_mb= 2048,那么最多可以跑50/2=25个container。

    如果设置max_mb= 8096,那么最多可以跑50/8=6个container,整体来说有点浪费cpu核

    yarn.nodemanager.vmem-pmem-ratio:这是1g物理内存用多少倍虚拟内存,默认是2.1,可不改

    1. <!--设置on yarn 的资源优化-->
    2. <property>
    3. <description>该节点上YARN可使用的物理内存总量</description>
    4. <name>yarn.nodemanager.resource.memory-mb</name>
    5. <value>51200</value>
    6. </property>
    7. <property>
    8. <description>表示集群中每个节点可被分配的虚拟CPU个数</description>
    9. <name>yarn.nodemanager.resource.cpu-vcores</name>
    10. <value>32</value>
    11. </property>
    12. <property>
    13. <description>每个容器container请求被分配的最小内存</description>
    14. <name>yarn.scheduler.minimum-allocation-mb</name>
    15. <value>2048</value>
    16. </property>
    17. <property>
    18. <description>每个容器container请求被分配的最大内存,不能给太大</description>
    19. <name>yarn.scheduler.maximum-allocation-mb</name>
    20. <value>8096</value>
    21. </property>
    22. <property>
    23. <description>每个容器container请求被分配的最少虚拟CPU个数</description>
    24. <name>yarn.scheduler.minimum-allocation-vcores</name>
    25. <value>1</value>
    26. </property>
    27. <property>
    28. <description>每个容器container请求被分配的最多虚拟CPU个数</description>
    29. <name>yarn.scheduler.maximum-allocation-vcores</name>
    30. <value>4</value>
    31. </property>
    32. <property>
    33. <description>任务每使用1MB物理内存,最多可使用虚拟内存量,默认是2.1</description>
    34. <name>yarn.nodemanager.vmem-pmem-ratio</name>
    35. <value>2.1</value>
    36. </property>

    注意:

    机器数量少的情况下,以上container资源不可调大,yarn的资源管理会发生资源预留机制,造成宕机

  • 相关阅读:
    数据结构-链表(3)
    单标签实现复杂的棋盘布局
    Android Studio SDK&Gradle&JDK等工具的正确使用
    Java日志框架的扛把子 - SLF4J - SLF4J的原理和实践
    定时执行专家 - 程序设计及源代码结构 by BoomWorks
    漫谈Web3的实现之路:组织形式、产品形态和技术发展
    【SwiftUI模块】0060、SwiftUI基于Firebase搭建一个类似InstagramApp 3/7部分-搭建TabBar
    位图(bitmap)原理以及实现
    2022 年牛客多校第九场补题记录
    c++基础语法之内联函数
  • 原文地址:https://blog.csdn.net/Joseph25/article/details/125539207