MAPREDUCE服务 MRS-为什么数据查询/加载失败,且发生“org.apache.carbondata.core.memory.MemoryException: Not enough memory”异常?:回答
MAPREDUCE服务 MRS-为什么数据查询/加载失败,且发生“org.apache.carbondata.core.memory.MemoryException: Not enough memory”异常?:回答
回答
当执行器中此次数据查询和加载所需要的堆外内存不足时,便会发生此异常。
在这种情况下,请增大“carbon.unsafe.working.memory.in.mb”和“spark.yarn.executor.memoryOverhead”的值。
详细信息请参考如何在CarbonData中配置非安全内存?
该内存被数据查询和加载共享。所以如果加载和查询需要同时进行,建议将“carbon.unsafe.working.memory.in.mb”和“spark.yarn.executor.memoryOverhead”的值配置为2048 MB以上。
可以使用以下公式进行估算:
数据加载所需内存:
(“carbon.number.of.cores.while.loading”的值[默认值 = 6]) x 并行加载数据的表格 x (“offheap.sort.chunk.size.inmb”的值[默认值 = 64 MB] + “carbon.blockletgroup.size.in.mb”的值[默认值 = 64 MB] + 当前的压缩率[64 MB/3.5])
= ~900 MB 每表格
数据查询所需内存:
(SPARK_EXECUTOR_INSTAN CES . [默认值 = 2]) x ( carbon.blockletgroup.size.in.mb [默认值 = 64 MB] +“carbon.blockletgroup.size.in.mb”解压内容[默认值 = 64 MB * 3.5]) x (每个执行器核数[默认值 = 1])
= ~ 600 MB
- MapReduce服务_如何使用MapReduce服务_MRS集群客户端安装与使用
- MapReduce服务_什么是HDFS_HDFS特性
- MapReduce服务_什么是MapReduce服务_什么是HBase
- 大数据分析是什么_使用MapReduce_创建MRS服务
- MapReduce服务_什么是Flink_如何使用Flink
- MapReduce服务_什么是Yarn_如何使用Yarn
- 什么是Spark_如何使用Spark_Spark的功能是什么
- 日志监控与告警_日志告警规则_如何配置日志告警_日志分析_日志服务
- MapReduce服务_什么是Kafka_如何使用Kafka
- MapReduce服务_什么是Flume_如何使用Flume