Can';t从Hadoop访问公共S3存储桶

Can';t从Hadoop访问公共S3存储桶,hadoop,amazon-s3,Hadoop,Amazon S3,我正在使用Hadoop来处理GoogleBooksNGRAMS,它们作为Hadoop序列文件存储在AmazonS3中 Hadoop只需在文件名上指定S3://或s3n://协议,就可以从S3读取数据(将S3存储桶用作虚拟“文件系统”) 不幸的是,它要求您设置AWS访问和密钥。因为我想读的那个桶是公用的,所以我没有任何钥匙可以用。如果我使用自己的密钥,我就无法读取ngrams存储桶(因为它不属于我的帐户) 如何使用Hadoop中存储在公共S3存储桶中的文件,而不重新托管该文件(这将非常昂贵,因为有

我正在使用Hadoop来处理GoogleBooksNGRAMS,它们作为Hadoop序列文件存储在AmazonS3中

Hadoop只需在文件名上指定S3://或s3n://协议,就可以从S3读取数据(将S3存储桶用作虚拟“文件系统”)

不幸的是,它要求您设置AWS访问和密钥。因为我想读的那个桶是公用的,所以我没有任何钥匙可以用。如果我使用自己的密钥,我就无法读取ngrams存储桶(因为它不属于我的帐户)


如何使用Hadoop中存储在公共S3存储桶中的文件,而不重新托管该文件(这将非常昂贵,因为有几TB的数据)?

如果数据是公共数据,您将不需要AWS访问或密钥,因为您将不使用
s3n://
变体。相反,您将使用公共URL变量,它将以http://*.s3.amazonaws.com/*


如果公共URL不可用,您可以尝试为每个AWS访问和密钥传入一个空白字符串,然后看看会发生什么

不,不幸的是,Hadoop无法像S3那样将其“文件系统”装载到HTTP协议上。我注意到此页面链接在Amazon的NGrams数据集页面底部。它使用配置单元处理该数据集。HIVE只是一个位于Hadoop之上的框架,它使用与Hadoop相同的信条。看起来这确实是一个到目前为止还没有解决的限制。有JIRA的票吗?在这里面临同样的问题。通过直接使用jets3t解决了这个问题,这几乎没有那么优雅。你知道这个问题吗?@AlexDean,我最终放弃了,写了我自己的RecordReader,它通过HTTP在文件中发出咕噜声。我从来没有让默认阅读器使用S3。啊,不好意思,谢谢你让我知道@levand。我发现,即使是S3DistCp也有这个限制,这看起来真的很愚蠢。