我正在使用Hadoop处理Google Books ngrams,这些图表存储为Amazon S3中的Hadoop序列文件。
Hadoop包括从S3读取(使用S3存储桶作为虚拟“文件系统”)的功能,只需在文件名上指定s3://或s3n://协议即可。
不幸的是,它要求您设置AWS访问权限和密钥。由于我想读取的桶是公开的,我没有任何密钥可供使用。如果我使用自己的密钥,我就无法从ngrams桶中读取(因为它不属于我的帐户)。
如何从Hadoop使用存储在公共S3存储桶中的文件,而无需自己重新托管文件(由于有几兆字节的数据,这会非常昂贵)?
答案 0 :(得分:-1)
如果数据是公开的,您将不需要AWS访问权限或密钥,因为您不会使用s3n://
变体。相反,您将使用公共网址变体,该变体将以http://*.s3.amazonaws.com/*
如果公共URL不可用,您可以尝试为每个AWS访问密钥和密钥传递一个空字符串,看看会发生什么