EMR集群不支持跨区域访问OSS问题

本文介绍EMR集群不支持跨区域访问OSS问题的原因及解决方案。

访问OSS出现Fail to wait EPOLLOUT

  • 报错详情:

    [emr-user@core-1-1~]$hadoopfs-lsoss://jindo-oss-runjob-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/
    2022-11-2817:12:19,926WARNjnative.NativeLogger:socket.cpp:1223]FailtowaitEPOLLOUToffd=212
    2022-11-2817:12:29,439WARNjnative.NativeLogger:socket.cpp:1223]FailtowaitEPOLLOUToffd=212
    2022-11-2817:12:39,452WARNjnative.NativeLogger:socket.cpp:1223]FailtowaitEPOLLOUToffd=212
    2022-11-2817:12:50,468WARNjnative.NativeLogger:socket.cpp:1223]FailtowaitEPOLLOUToffd=212
    2022-11-2817:12:53,968WARNjnative.NativeLogger:socket.cpp:1223]FailtowaitEPOLLOUToffd=207
  • 报错原因:

    EMR集群默认不支持在Core节点(新版控制台)或Worker节点(旧版控制台)跨区域访问OSS。

  • 解决方法:

    • 建议您使用相同区域的OSS Bucket。

    • 创建集群时所有节点都打开挂载公网开关或集群创建后在ECS控制台开通公网IP地址,且使用OSS的外网Endpoint进行访问。

      如需打开挂载公网开关,请参见创建集群。如需在ECS上申请开通公网IP地址,请参见弹性公网IP

    • 若您因业务需要跨区域复制,请参见跨区域复制概述

    • 若您因业务需要跨区域访问,建议您可以给集群所在的VPC或交换机配置公网NAT网关。具体操作,请参见使用公网NAT网关SNAT功能访问互联网