开发者社区> 问答> 正文

【OSS】使用数据迁移工具ossimport发生迁移失败的问题,什么原因?

已解决

使用数据迁移工具ossimport发生迁移失败的问题,什么原因?

展开
收起
云上猫猫 2022-01-19 14:20:42 1483 0
1 条回答
写回答
取消 提交回答
  • 采纳回答

    如果迁移文件失败,建议您先查看迁移失败日志,确认失败的原因。您可以在解决这些问题后使用retry命令进行重试。迁移失败日志的路径为master/jobs/${JobName}/failed_tasks/${TaskName}/audit.log。

    • 使用stat命令查看任务状态显示失败

    p45607.png

    解决方案:使用stat命令查看迁移任务状态,如果JobState为failed,则迁移任务失败。迁移完成后请使用retry命令进行重试。

    • 部分文件迁移失败后反复重试都无法成功迁移

    解决方案:

    a.查看迁移失败文件列表master/jobs/${JobName}/failed_tasks/${TaskName}/error.list,获取失败文件的相对路径。

    b.确认是否有这部分文件的权限访问、文件是否被删除、是否是软链接文件、文件名是否存在乱码等。

    c.解决以上问题后,使用retry命令进行重试。

    • 迁移失败日志报“The bucket you are attempting to access must be addressed using the specified endpoint”错误
    Exception:com.aliyun.oss.OSSException: The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint.
    <Error>
      <Code>AccessDenied</Code>
      <Message>The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint.</Message>
      <RequestId>56EA98DE815804**21B23EE6</RequestId>
      <HostId>my-oss-bucket.oss-cn-qingdao.aliyuncs.com</HostId>
      <Bucket>my-oss-bucket</Bucket>
      <Endpoint>oss-cn-hangzhou.aliyuncs.com</Endpoint>
    </Error>
    

    问题分析:srcDomain或destDomain填写错误,请按照域名列表填写正确的Endpoint。

    • 迁移失败日志报“The request signature we calculated does not match the signature you provided”错误
    Exception:com.aliyun.oss.OSSException: The request signature we calculated does not match the signature you provided. Check your key and signing method.
    [ErrorCode]: SignatureDoesNotMatch
    [RequestId]: xxxxxxx
    [HostId]: xxx.oss-cn-shanghai.aliyuncs.com
    

    问题分析:destAccessKey和destSecretKey有误,请填写正确的AK信息。

    • 迁移失败日志报“The bucket name “xxx/xx” is invalid”错误

    java.lang.IllegalArgumentException: The bucket name "xxx/xx" is invalid. A bucket name must: 1) be comprised of lower-case characters, numbers or dash(-); 2) start with lower case or numbers; 3) be between 3-63 characters long.

    问题分析:检查配置项destBucket是否填写正确,Bucket名称是不带正斜线(/)以及路径的。

    • 迁移失败日志报“Connect to xxx.oss-cn-beijing-internal.aliyuncs.com:80 timed out”错误
    Unable to execute HTTP request: Connect to xxx.oss-cn-beijing-internal.aliyuncs.com:80 timed out
    [ErrorCode]: ConnectionTimeout
    [RequestId]: Unknown
    

    问题分析:这个是连接超时的报错,通常原因是迁移用的设备非ECS实例或不是与OSS同地域的ECS实例,但是配置文件使用了OSS的内网域名。OSS内网域名仅支持同地域ECS实例访问。

    解决方案:

    a.修改配置文件中域名为外网Endpoint,清除任务后重新提交任务。

    b.使用与OSS同地域的ECS实例运行迁移任务。

    • 迁移失败日志报“The specified bucket is not valid”错误
    com.aliyun.oss.OSSException: The specified bucket is not valid.
    [ErrorCode]: InvalidBucketName
    [RequestId]: 57906B4DD0EBAB0FF553D661
    [HostId]: you-bucket.you-bucketoss-cn-hangzhou-internal.aliyuncs.com
    

    问题分析:配置文件里的destDomian配置的域名是Bucket所在地域的Endpoint地址,而不是带Bucket名称的二级域名。例如Bucket在华北2(北京),应填写oss-cn-beijing.aliyuncs.com。详情请参见配置文件示例

    • 迁移失败日志报“Unable to execute HTTP request: The Difference between … is too large”错误
    Unable to execute HTTP request: The Difference between the request time and the current time is too large.
    [ErrorCode]: RequestTimeTooSkewed
    [RequestId]: xxxxxxx
    

    问题分析:该报错可能是以下情况导致。

    a.本地机器时间不对,与OSS服务器时间相差15分钟以上,该情况居多。

    b.可能是并发太高,尤其是CPU占用率很高,导致并发上传慢。

    解决方案:

    a.修改本地时间,与OSS服务器一致。

    b.如果是并发问题,可以调整并发。您可以将sys.properties文件的workerTaskThreadNum参数值改小。

    • 迁移失败日志报“No route to host”错误

    问题分析:这种情况一般是本地防火墙或者iptables等原因导致网络不通。

    解决方案:通过ping命令测试迁移服务器到源端和目的端网络是否正常。

    a.若网络正常,可检查电脑防火墙和本地的防火墙设备是否有限制,可尝试关闭防火墙测试。

    b.若网络异常,排查原因并处理后重试。

    • 使用http模式迁移,迁移失败日志报“Unknown http list file format”错误

    问题分析:该问题是因为指定的http列表文件格式不对或内容不符合规范。

    解决方案:

    a.如果是从其它操作系统上拷过来的文件,Linux系统可以用mac2unix、dos2unix等相关命令转换文件格式;Windows系统可以使用notepad等工具转换格式。

    b.如果是列表文件内容的格式不正确,请修改为正确的格式。列表文件内容的格式请参见列表文件。

    • 迁移失败日志报“The object key “/xxxxx.jpg” is invalid ”错误

    Exception:java.lang.IllegalArgumentException: The object key "/xxxxx.jpg" is invalid. An object name should be between 1 - 1023 bytes long when encoded as UTF-8 and cannot contain LF or CR os unsupported chars in XML1.0, and cannot begin with "/" or "\".

    解决方案:

    a.检查srcPrefix是否是作为目录但没有以正斜线(/)结尾。如果是目录,请以正斜线(/)结尾。

    b.检查destPrefix是否以正斜线(/)或者反斜线(\)开头。如果是,请删除正斜线(/)或反斜线(\),destPrefix不能以正斜线(/)或反斜线(\)开头。

    2022-01-19 14:27:04
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
问答排行榜
最热
最新

相关电子书

更多
OSS运维进阶实战手册 立即下载
《OSS运维基础实战手册》 立即下载
OSS运维基础实战手册 立即下载