新时代民工 2021-04-09 20:13 采纳率: 0%
浏览 161

hive on spark, container与executor内存分配

hive ON SPARK,用的是容量调度器,跑了一个任务,yarn界面看到executor节点的container内存为8G,但打开spark的web界面发现executor只有3.6G,那么剩下的4.4G是干什么用了?

  • 写回答

1条回答 默认 最新

  • 码农阿豪@新空间代码工作室 Java领域优质创作者 2024-07-18 17:24
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    在这种情况下,剩下的4.4G内存可能被用来给YARN容器启动executor进程时预留的一些内存,例如Java进程内存、堆外内存、JVM调优参数等。这些额外的内存预留是为了确保executor在运行过程中不会因为内存不足而导致程序失败。 下面是一个可能的解释和示例代码:
    1. Java进程内存:Java进程在启动时需要一定的内存空间,即使executor JVM堆大小设置为3.6G,在实际运行时Java进程可能需要更多的内存来支持JVM的运行。
    2. 堆外内存:在某些情况下,executor可能需要使用到堆外内存(off-heap memory)来存储一些数据,这部分内存并不包含在executor的堆内存中。
    3. JVM调优参数:在Spark应用中,可能会配置一些JVM调优参数,例如MaxDirectMemorySize、Metaspace大小等,这些都会占用额外的内存空间。 示例代码中,假设executor内存设置为3.6G,但实际运行时,可能需要超过3.6G的内存来支持Java进程内存、堆外内存等。这时可以尝试增加executor的内存大小,以确保程序正常运行。
    # 修改executor内存配置为6G
    spark-submit --conf spark.executor.memory=6G ...
    

    综上所述,剩下的4.4G内存可能被用来支持Java进程内存、堆外内存等,为确保程序正常运行。如果需要更准确的内存使用情况,可以通过日志或其他监控工具来查看内存使用情况。

    评论

报告相同问题?

悬赏问题

  • ¥15 angular项目错误
  • ¥20 需要帮我远程操控一下,运行一下我的那个代码,我觉得我无能为力了
  • ¥20 有偿:在ubuntu上安装arduino以及其常用库文件。
  • ¥15 请问用arcgis处理一些数据和图形,通常里面有一个根据点划泰森多边形的命令,直接划的弊端是只能执行一个完整的边界,但是我们有时候会用到需要在有很多边界内利用点来执行划泰森多边形的命令
  • ¥30 在wave2foam中执行setWaveField时遇到了如下的浮点异常问题,请问该如何解决呢?
  • ¥750 关于一道数论方面的问题,求解答!(关键词-数学方法)
  • ¥200 csgo2的viewmatrix值是否还有别的获取方式
  • ¥15 Stable Diffusion,用Ebsynth utility在视频选帧图重绘,第一步报错,蒙版和帧图没法生成,怎么处理啊
  • ¥15 请把下列每一行代码完整地读懂并注释出来
  • ¥15 寻找公式识别开发,自动识别整页文档、图像公式的软件