Hologres 任务一直报错了?

Hologres 任务一直报错了?a43a9b4e29ce31b83aa9bcc282803be2.png

展开
收起
真的很搞笑 2023-10-31 19:19:30 88 分享 版权
阿里云 AI 助理回答

Hologres 任务报错可能由多种原因引起,以下根据知识库中的信息为您总结了常见问题及其解决方法,请根据具体报错信息进行排查和处理。


1. 写入相关报错

1.1 报错:ERPC TIMEOUT 或 ERPC CONNECTION CLOSED

  • 现象
    com.alibaba.blink.store.core.rpc.RpcException: request xx UpsertRecordBatchRequest failed on final try 4, maxAttempts=4, errorCode=3, msg=ERPC_ERROR_TIMEOUT
    
  • 可能原因
    • 写入压力过大导致写入失败。
    • Hologres 实例 CPU 负载过高或后端节点出现 OOM(内存溢出)或 Coredump。
  • 解决方法
    1. 先尝试重试写入操作。
    2. 如果问题持续存在,请检查 Hologres 实例的 CPU 和内存负载是否打满。
    3. 若无法解决,请联系 Hologres 技术支持人员进一步排查。

1.2 报错:BackPressure Exceed Reject Limit

  • 现象: 写入时出现 BackPressure Exceed Reject Limit 错误。
  • 可能原因
    • Hologres 后端写入压力过大,Memtable 来不及刷盘导致写入失败。
  • 解决方法
    1. 如果是偶发性错误,可以忽略。
    2. 在 Sink 配置中增加参数 rpcRetries = '100',调大写入重试次数。
    3. 如果问题持续存在,请联系 Hologres 技术支持人员确认实例状态。

1.3 报错:Cloud authentication failed for access id

  • 现象: 出现 Cloud authentication failed for access id 错误。
  • 可能原因
    • AccessKey ID 或 AccessKey Secret 配置错误。
    • 用户未添加至 Hologres 实例权限列表。
  • 解决方法
    1. 检查 AccessKey ID 和 AccessKey Secret 是否正确,确保无空格或其他格式问题。
    2. 使用当前 AccessKey 登录 HoloWeb,测试联通性。如果报错为 FATAL:role“ALIYUN$xxxx“does not exist,说明账号没有实例权限,需管理员授予权限。

2. 数据源与表结构相关报错

2.1 报错:Modify record by primary key is not on this table

  • 现象: 写入时选择更新模式,但目标表未设置主键。
  • 解决方法
    • 确保目标表设置了主键,否则无法使用更新模式。

2.2 报错:The requested table name xxx mismatches the version of the table xxx

  • 现象
    The requested table name xxx mismatches the version of the table xxx from server/org.postgresql.util.PSQLException: An I/O error occurred while sending to the backend.
    
  • 可能原因
    • 用户对表执行了 ALTER TABLE 操作,导致 Blink 写入的 Schema 版本号低于 Server 端版本号,并且超过了客户端重试次数。
  • 解决方法
    1. 如果是偶发性错误,可以忽略。
    2. 如果问题持续存在,请联系 Hologres 技术支持人员。

2.3 报错:Failed to query table meta for table

  • 现象: 出现 Failed to query table meta for table 错误。
  • 可能原因
    • 用户读写了一张 Hologres 的外部表,而 Hologres Connector 不支持外部表。
    • Hologres 实例 Meta 出现问题。
  • 解决方法
    • 联系 Hologres 技术支持人员排查问题。

3. 数据导出相关报错

3.1 报错:internal error: odps_writer_xxx

  • 现象
    internal error: odps_writer_xxx,UploadId: xxx, Block 0 close odps writer failed: RequestId=xxx, ErrorCode=FlowExceeded, ErrorMessage= GlobalSlot Quota
    
  • 可能原因
    • Hologres 导出数据至 MaxCompute 时,Tunnel 接口在流量高峰期受到写入限制。
  • 解决方法
    1. 重试数据导出任务。
    2. 如果仍然报错,通过以下命令控制回写速率:
      SET hg_experimental_write_maxcompute_dop = <count>;
      

      建议将 <count> 设置为 [0~shard数] 之间的值。


4. 维表 Join 相关报错

4.1 报错:Hologres 维表 Join 不到数据

  • 现象: Hologres 维表无法 Join 到数据。
  • 可能原因
    • Hologres 维表使用了分区表,而 Hologres 维表暂不支持分区表。
  • 解决方法
    • 将分区表转换为普通表。

5. 内存资源不足相关报错

5.1 报错:Duplicate keys detected when building hash table

  • 现象
    ERROR: internal error: Duplicate keys detected when building hash table.
    
  • 可能原因
    • 数据源存在重复数据。
    • 数据源因 TTL 过期导致主键(PK)重复。
    • 实例本身内存资源不足,无法支撑大数据量写入任务。
  • 解决方法
    1. 针对 TTL 导致的 PK 重复
      • 使用以下命令清理重复主键数据(仅适用于 Hologres V1.3.23 及以上版本):
      CALL public.hg_remove_duplicated_pk('<schema>.<table_name>');
      

      默认保留最后一条写入的 PK 数据,其余重复数据会被清理。

    2. 针对内存资源不足
      • 推荐使用 Hologres Serverless Computing 能力执行大数据量写入任务(V2.1.17 及以上版本支持)。
      • 参考 OOM 常见问题排查指南进行优化。

6. 其他常见问题

6.1 DataWorks 执行任务报错

  • 现象: 使用 DataWorks 执行任务时出现报错。
  • 可能原因
    • DataWorks 和 Hologres 服务所在区域不一致。
  • 解决方法
    • 确认 DataWorks 和 Hologres 服务的区域是否一致,若不一致请调整至同一区域。

7. 关键缺陷通知

  • 如果您使用的 Hologres 版本较旧,可能存在已知缺陷。建议加入实时数仓 Hologres 交流群,联系技术支持协助升级到最新版本,以规避潜在问题。

总结

请根据具体的报错信息,结合上述内容逐一排查问题。如果问题仍未解决,建议联系 Hologres 技术支持团队获取进一步帮助。您可以复制页面截图提供更多信息,我可以进一步帮您分析问题原因。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答

本技术圈将为大家分析有关阿里云产品Hologres的最新产品动态、技术解读等,也欢迎大家加入钉钉群--实时数仓Hologres交流群32314975

还有其他疑问?
咨询AI助理