全部产品
云市场

查询OSS外部表报错java.lang.OutOfMemoryError: Java heap space

更新时间:2018-07-26 17:56:09

问题现象

在MaxCompute上访问OSS外部表,编写udf本地测试通过,上传后报错内存溢出:

  1. FAILED: ODPS-0123131:User defined function exception - Traceback:
  2. java.lang.OutOfMemoryError: Java heap space

设置参数:

  1. set odps.stage.mapper.mem = 2048
  2. set odps.stage.mapper.jvm.mem = 4096

设置参数后运行时间增加且依然报错内存溢出。

问题原因

外部表的object文件太多,内存占用过大且未设置分区。

解决方法

  1. 使用小数据量查询;
  2. 将object文件进行分区,以减少内存占用。不会导致内存溢出的object数量的最大限制的手动设置规定请参考MR限制项汇总