Amazon ec2 为什么在EC2上运行的Shark会给我一个“答案”;错误的FS“;将数据写入S3时出错

Amazon ec2 为什么在EC2上运行的Shark会给我一个“答案”;错误的FS“;将数据写入S3时出错,amazon-ec2,amazon-s3,hive,shark-sql,Amazon Ec2,Amazon S3,Hive,Shark Sql,我使用提供的安装脚本在AmazonEC2上运行Shark/Spark(0.9.1)。我从S3中读取数据,然后尝试将表写回S3。数据可以很好地从S3读取(因此我的凭据是正确的),但当我尝试将数据写入S3时,我会遇到以下错误: 14/07/31 16:42:30信息计划程序。TaskSetManager:丢失是由于 java.lang.IllegalArgumentException:错误的FS: s3n://id:key@shadoop/tmp/hive root/hive\u 2014-07-3

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

14/07/31 16:42:30信息计划程序。TaskSetManager:丢失是由于 java.lang.IllegalArgumentException:错误的FS: s3n://id:key@shadoop/tmp/hive root/hive\u 2014-07-31\u 16-39-29\u 825\u 6436105804053790400/\u 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”有什么想法吗?

错误的FS通常意味着错误的主机名。以下是有关设置主机名的SO帖子:

下面是一个线程,另一个用户通过向其服务器上的
/etc/hosts
文件添加条目来解决此问题:


然而,在多次阅读你的问题之后,你的错误似乎有所不同。您的查询应该写入hadoop FS,而不是S3<代码>预期值:hdfs://ecmachine.compute-1.amazonaws.com:9000。也许您可以将查询导出到CSV,然后将其导入S3?请参见此处的示例:


我也尝试引用此处的建议,但没有任何效果:我可以导出,然后导入,但这是一个痛苦的过程-将所有文件从HDFS写入中央计算机,然后上载。从我所读到的一切来看,Shark应该能够直接针对S3,但我似乎无法找到任何解决方案来解释为什么这不起作用。谢谢你的帮助。