大数据计算MaxCompute我的odps任务中途总是会失败一次,报错如下,帮忙看看是为什么?[阿里云MaxCompute]

大数据计算MaxCompute我的odps任务中途总是会失败一次,报错如下,帮忙看看是为什么?

{“t”:”SERVICE_MODE”,”a”:{“f”:{“odps.service.mode”:”off”}},”d”:”ODPS-0010000:System internal error – Service mode falling back to batch mode to rerun due to AllOrNothingResourceWaitTimeout”}

https://logview.aliyun.com/logview?h=http://service.cn-hangzhou.maxcompute.aliyun-inc.com/api&p=bigdata_poc_zj&i=20231101014706341gxqm24hxk9&token=ZFV2Q0hRZWE3WVArMWVBSEhKNjI5RC9paXpnPSxPRFBTX09CTzpwNF8yMDM0NjAwOTM5NjkyNzgyNjksMTcwMTM5NTIyNix7IlN0YXRlbWVudCI6W3siQWN0aW9uIjpbIm9kcHM6UmVhZCJdLCJFZmZlY3QiOiJBbGxvdyIsIlJlc291cmNlIjpbImFjczpvZHBzOio6cHJvamVjdHMvYmlnZGF0YV9wb2NfemovaW5zdGFuY2VzLzIwMjMxMTAxMDE0NzA2MzQxZ3hxbTI0aHhrOSJdfV0sIlZlcnNpb24iOiIxIn0=&

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
=====这是一个广告位,招租中,联系qq 78315851====
2 条回复 A 作者 M 管理员
  1. 任务整体是成功的,过程中是online job失败后,回退到了offline。报错也是回退的时候报的我理解。Fuxi Job的两种作业类型:Online Job(service mode)和Offline Job。对于Offline的作业而言,当每次提交作业时在Fuxi上都会有一个环境准备的时间,针对大数据量并且不需要返回查询结果的作业比较合适,而对小数据量并且实时作业要求比较高的作业是不合适的。所以Fuxi提供为什么ServiceMode这种准实时的作业形式,也是online,首先会有一个服务去预先申请计算一些资源并加载出来,比如会预先分配一 万个nstance,当有作业提交时会根据作业规模分配一些Instance进行执行,这样就省去环境准备的时间,所以就会比较快。online不等资源且不保证成功。如果service mode失败,比如instance个数超过1000,或者运行超过10分钟,就会退回以Offline模式重跑。可以set odps.service.mode=off;这样就直接跑完了,不会再跑online
    ,此回答整理自钉群“MaxCompute开发者社区2群”

  2. 根据您提供的错误信息,问题可能是由于MaxCompute的在线服务模式被关闭导致的。错误信息中提到了”AllOrNothingResourceWaitTimeout”,这意味着任务在等待资源时超时,导致任务失败。

    要解决这个问题,您可以尝试以下方法:

    1. 增加任务的超时时间:您可以在MaxCompute SQL任务中设置odps.service.timeout参数来增加任务的超时时间。例如,将超时时间设置为30分钟:
    SET odps.service.timeout=1800;-- 在这里编写您的SQL查询语句
    1. 检查资源可用性:确保您的MaxCompute环境中有足够的资源(如内存、CPU等)来运行任务。如果资源不足,任务可能会因为等待资源而超时。

    2. 优化SQL查询:检查您的SQL查询是否存在性能问题,如低效的JOIN操作、大量的数据筛选等。优化查询可以提高任务的执行效率,从而减少任务的超时风险。

    3. 检查依赖关系:确保您的任务依赖的其他任务或作业已经成功完成。如果依赖的任务失败,可能会导致当前任务失败。

    4. 查看日志:您可以查看MaxCompute的日志以获取更多关于任务失败原因的信息。日志中可能包含有关错误的详细信息和建议的解决方案。

  3. 根据您的描述和提供的日志信息,看起来您的MaxCompute任务遇到了一个内部系统错误,导致它从批处理模式退回到了服务模式重新运行,这是由于“AllOrNothingResourceWaitTimeout”(所有或无等待超时)造成的。
    这个问题可能是由于资源不足或无法及时调度而导致的,例如:存储空间不足、内存不足、网络拥塞等情况。您可以考虑以下几种解决方案:

    1. 检查并增加您的MaxCompute项目的可用资源。如果您发现项目中有一些未使用的资源,可以考虑将其释放出来供当前任务使用。
    2. 尝试降低任务的并发度。如果您发现任务中有大量的并发操作,可以尝试减小并发度,以减轻系统的压力。
    3. 调整任务的时间窗口。如果任务需要在短时间内完成大量的工作,可以考虑延长任务的运行时间,以减少对系统的压力。