对于 Hadoop 3.4.2 的 S3A 连接器经 HTTP 代理访问的场景,把这些条目合并到该作业的 Hadoop 配置中,通常是相应的 core-site.xml:

<property>
  <name>fs.s3a.proxy.host</name>
  <value>gateway.example</value>
</property>
<property>
  <name>fs.s3a.proxy.port</name>
  <value>8080</value>
</property>
<property>
  <name>fs.s3a.proxy.ssl.enabled</name>
  <value>false</value>
</property>

若要针对可公开访问的 S3 端点做一次单独获准、且未配置代理凭据的测试,HTTP 代理列表可提供主机名与显式端口的候选值。fs.s3a.proxy.ssl.enabled=false 选择到该代理的普通 HTTP 连接;它并不会关闭 S3A 到 S3 的 TLS。请使用与实际代理监听器相符的取值。

两个使用方都要检查。提交端客户端可能能成功列出 S3,而 DistCp 的 map 任务容器却无法连上代理或无法加载同一份文件系统配置。真正执行传输的是这些任务。

对失败的任务,保留执行主机、生效配置和所选的端点,并一并记录错误。提交所用 shell 的环境不足以作为工作节点的证据。

这些设置作用于 s3a://。旧式 Jets3t 连接器的做法配置的是另一套实现,不能替代本作业所用的 S3A 选项。

相关文章