hadoop - 如何为从 Amazon EMR 应用程序到 S3 的每个上传请求设置 User-Agent(前缀)

标签 hadoop amazon-emr

AWS 已要求我正在开发的产品识别它代表用户对 S3 资源提出的请求,以便他们评估其影响。

为此,我们必须为来自 EMR 应用程序的 S3 存储桶完成的每个上传请求设置 User-Agent header 。我想知道如何实现这一目标?

Hadoop 的文档提到了 fs.s3a.user.agent.prefix属性 (core-default.xml)。但是,协议(protocol) s3a似乎已弃用( Work with Storage and File Systems ),所以我不确定此属性是否有效。

为了提供我需要做的更多上下文,使用 AWS Java SDK,可以设置 User-Agent header 的前缀,例如:

AWSCredentials credentials;
ClientConfiguration conf = new ClientConfiguration()
    .withUserAgentPrefix("APN/1.0 PARTNER/1.0 PRODUCT/1.0");
AmazonS3Client client = new AmazonS3Client(credentials, conf);

然后,每个请求的 User-Agent http header 都会有一个类似于:APN/1.0 PARTNER/1.0 PRODUCT/1.0, aws-sdk-java/1.11.234 Linux/4.15.0-58-generic Java_HotSpot(TM)_64-Bit_Server_VM/25.201-b09 java/1.8.0_201 的值。 .从 EMR 应用程序上传文件时,我需要实现类似的功能。

最佳答案

S3A 在 ASF hadoop 中没有被弃用;我会争辩说,它现在领先于 EMR 自己的连接器将做的事情。如果您使用的是 EMR,您也许可以使用它,否则您可以使用他们实现的内容。

在 S3A 中的 FWIW,我们正在研究实际动态更改特定查询的 header 所需的内容,因此您可以超越特定用户到共享集群中的特定 hive/spark 查询。执行此操作相当复杂,因为您需要在每个请求设置上执行此操作。

关于hadoop - 如何为从 Amazon EMR 应用程序到 S3 的每个上传请求设置 User-Agent(前缀),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57828760/

相关文章:

hadoop - 执行错误,从 org.apache.hadoop.hive.ql.exec.MapRedTask 返回代码 2

hadoop - 带有序列文件的 Spark RDD take()

sql - Hadoop-Hive-Impala-重写性能查询

hadoop - Amazon EMR问题

c++ - 使用自定义 AMI 运行 Amazon EMR?

python - 如何使用 boto 启动和配置 EMR 集群

hadoop - Sqoop将所有数据类型映射为字符串

hadoop - 接口(interface) InputFormat 与类 InputFormat

sql - Hive 查询中的语法错误

hadoop - 使用hadoop执行jar文件