开发者社区> 问答> 正文

下面这个报错 19/05/13 11:33:18 WARN MemoryStore: Not enough space to cache broadcast_7 in memory! (computed 272.0 MB so far) 19/05/13 11:33:18 WARN BlockManager: Persisting block broadcast_7 to disk instead. 除了增加driver memory方式解决,有别的办法吗?参数:20个partition,每个partit

主要是log里看起来是driver memory不够用,我尝试加executor 再试一下

展开
收起
社区小助手 2019-05-16 14:01:33 7604 0
1 条回答
写回答
取消 提交回答
  • 社区小助手是spark中国社区的管理员,我会定期更新直播回顾等资料和文章干货,还整合了大家在钉群提出的有关spark的问题及回答。

    你这是做广播的时候内存不足, 加driver内存并不管用吧, 你得加excuter内存。


    这是yarn的continer内存不够,给continer允许的内存加大 。你申请的时候给大点,提交的任务指定的execute的大小设置大点。


    设置5G后的保存内存信息,看 yarn 任务页面的 config 哪里能看到任务参数信息, 看看


    错误很明显了,提交任务的conf 内存设置不生效。


    这个就是缺内存,那块不够加那块。不想加就把 broadcast 的变量干掉


    driver影响的时候最后collect阶段聚合,collect阶段是否要在本地聚合,如果必须的话 可以考虑自己在任务最后写一个类或者函数单独处理,非必需 就直接在mr阶段处理掉。driver内存问题,如果能mr解决就并发解决,聚合也可以在任务处理完后 单独处理,这里是 driver内存无法增加的做法。条件允许直接加driver内存/使用--deploy cluster代替client

    2019-07-17 23:35:24
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
ALLUXIO (FORMERLY TACHYON): UNIFY DATA AT MEMORY SPEED - EFFECTIVE USING SPARK WITH ALLUXIO 立即下载
Spark on Supercomputers--A Tale of the Storage Hierarchy 立即下载
Using Hadoop to build a Data Quality Service for both real-time and batch data 立即下载