0

我正在使用提供的设置脚本在 Amazon EC2 上运行 Shark/Spark (0.9.1)。我正在从 S3 中读取数据,然后尝试将表写回 S3。可以很好地从 S3 读取数据(因此我的凭据是正确的),但是当我尝试将数据写入 S3 时,出现以下错误:

14/07/31 16:42:30 INFO scheduler.TaskSetManager:损失是由于 java.lang.IllegalArgumentException:错误的 FS:s3n://id:key@shadoop/tmp/hive-root/hive_2014-07-31_16- 39-29_825_6436105804053790400/_tmp.-ext-10000,预期:hdfs://ecmachine.compute-1.amazonaws.com:9000 [重复 3]

我尝试了几种不同的写出数据/表格的方法,但它们都产生了相同的错误。此特定错误是从 HQL 查询生成的,例如:

INSERT OVERWRITE DIRECTORY 's3n://id:key@shadoop/bucket' SELECT * FROM table;

关于为什么 S3 被视为“错误的 FS”的任何想法?

4

1 回答 1

0

Wrong FS通常意味着错误的主机名。这是与设置主机名有关的 SO 帖子: Getting Wrong FS: file while running hive query

这是另一个用户通过/etc/hosts在他的服务器上添加条目来解决这个问题的线程:http: //hadoop-common.472056.n3.nabble.com/Wrong-FS-td326744.html


但是,在多次阅读您的问题后,您的错误似乎有所不同。您的查询预计将写入 hadoop FS,而不是 S3。expected: hdfs://ecmachine.compute-1.amazonaws.com:9000. 也许您可以将查询导出为 CSV,然后将其导入 S3?请参见此处的示例:

将 Hive 表导出到 S3 存储桶

于 2014-08-08T12:41:53.950 回答