文档首页/ AI开发平台ModelArts/ 故障排除/ MoXing/ 使用MoXing复制数据报错
更新时间:2025-11-18 GMT+08:00

使用MoXing复制数据报错

问题现象

  1. 调用moxing.file.copy_parallel()将文件从开发环境的OBS桶中复制到其他OBS桶里,但是桶内没有出现目标文件。
  2. 使用MoXing复制数据不成功,出现报错。如:
    • ModelArts开发环境使用MoXing复制OBS数据报错:keyError: 'request-id'
    • ModelArts使用MoXing复制报错:No files to copy
    • ModelArts使用MoXing复制报错:some parts are failed when download
    • socket.gaierror: [Errno -2] Name or service not known
    • ERROR:root:Failed to call:

      func=<bound method ObsClient.getObject of <obs.client.ObsClient object at 0x7fd705939710>>

      args=('bucket', 'data/TFRecord/HY_all_inside/no_adjust_light_3/09_06_6x128x128_0000000212.tfrecord')

    • 报错:TimeoutError: [Errno 110] Connection timed out
    • WARNING:root:Retry=9,Wait=0.1, Timestamp = 1567152567.5327423

原因分析

当使用MoXing复制数据不成功,可能原因如下:

  • 源文件不存在。
  • OBS路径不正确或者是两个OBS路径不在同一个区域。
  • 训练作业空间不足。
  • 训练解密组件异常

处理方法

按照报错提示,需要排查以下几个问题:

  1. 检查moxing.file.copy_parallel()的第一个参数中是否有文件,否则会出现报错:No files to copy
    • 文件存在,请执行2
    • 文件不存在,请忽略该报错继续执行后续操作。
  2. 报错timeout时,检查复制的OBS的路径是否与开发环境或训练作业在同一个区域。

    进入ModelArts管理控制台,查看其所在区域。然后再进入OBS管理控制台,查看您使用的OBS桶所在的区域。查看是否在同一区域。

    • 是,请执行3
    • 否,请在ModelArts同一区域的OBS中新建桶和文件夹,并将所需的数据上传至此OBS桶中。
  3. 出现错误码403时检查OBS的路径是否正确,是否写为了“obs://xxx”。可使用如下方式判断OBS路径是否存在。

    mox.file.exists('obs://bucket_name/sub_dir_0/sub_dir_1')

    • 路径存在,请执行4
    • 路径不存在,请更换为一个可用的OBS路径。
  4. 出现报错some part are failed when download。检查使用的资源是否为CPU,CPU的“/cache”与代码目录共用10G,可能是空间不足导致,可在代码中使用如下命令查看磁盘大小。

    os.system('df -hT')

    • 磁盘空间满足,请执行5
    • 磁盘空间不足,请您使用GPU资源。
  5. 如果是在Notebook使用MoXing复制数据不成功,可以在Terminal界面中使用df -hT命令查看空间大小,排查是否因空间不足导致,可在创建Notebook时使用EVS挂载。
  6. 出现错误码503或报错的requestid为空时联系OBS服务查看对应桶的后台监控,确认是否出现带宽或并发打满导致的流控现象,调整后重试即可。
  7. 出现can't find xxx.tempFileNotFoundError报错信息,检测是否多个进程同时下载了同一文件并避免该场景出现。

如果代码写作正确,仍然无法解决该问题,请提交工单,由专业工程师为您分析并解决问题。