Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon s3 我完成的作业的AWS EMR减速器输出在哪里(应该在S3上,但没有)?_Amazon S3_Amazon Web Services_Elastic Map Reduce_Missing Data - Fatal编程技术网

Amazon s3 我完成的作业的AWS EMR减速器输出在哪里(应该在S3上,但没有)?

Amazon s3 我完成的作业的AWS EMR减速器输出在哪里(应该在S3上,但没有)?,amazon-s3,amazon-web-services,elastic-map-reduce,missing-data,Amazon S3,Amazon Web Services,Elastic Map Reduce,Missing Data,我遇到了一个问题,我在AWS的EMR上的Hadoop作业没有保存到S3。当我在一个较小的样本上运行作业时,该作业可以很好地存储输出。当我在完整的数据集上运行相同的命令时,作业再次完成,但在我指定输出的S3上没有任何内容 显然有一个问题,但它是“固定的” 还有谁有过这个问题吗?我的集群仍然在线,希望数据被埋藏在服务器的某个地方。如果有人知道我在哪里可以找到这些数据,请告诉我 更新:当我查看其中一个还原器的日志时,一切看起来都很好: 2012-06-23 11:09:04,437 INFO org.

我遇到了一个问题,我在AWS的EMR上的Hadoop作业没有保存到S3。当我在一个较小的样本上运行作业时,该作业可以很好地存储输出。当我在完整的数据集上运行相同的命令时,作业再次完成,但在我指定输出的S3上没有任何内容

显然有一个问题,但它是“固定的”

还有谁有过这个问题吗?我的集群仍然在线,希望数据被埋藏在服务器的某个地方。如果有人知道我在哪里可以找到这些数据,请告诉我

更新:当我查看其中一个还原器的日志时,一切看起来都很好:

2012-06-23 11:09:04,437 INFO org.apache.hadoop.fs.s3native.NativeS3FileSystem (main): Creating new file 's3://myS3Bucket/output/myOutputDirFinal/part-00000' in S3
2012-06-23 11:09:04,439 INFO org.apache.hadoop.fs.s3native.NativeS3FileSystem (main): Outputstream for key 'output/myOutputDirFinal/part-00000' writing to tempfile '/mnt1/var/lib/hadoop/s3/output-3834156726628058755.tmp'
2012-06-23 11:50:26,706 INFO org.apache.hadoop.fs.s3native.NativeS3FileSystem (main): Outputstream for key 'output/myOutputDirFinal/part-00000' is being closed, beginning upload.
2012-06-23 11:50:26,958 INFO org.apache.hadoop.fs.s3native.NativeS3FileSystem (main): Outputstream for key 'output/myOutputDirFinal/part-00000' upload complete
2012-06-23 11:50:27,328 INFO org.apache.hadoop.mapred.Task (main): Task:attempt_201206230638_0001_r_000000_0 is done. And is in the process of commiting
2012-06-23 11:50:29,927 INFO org.apache.hadoop.mapred.Task (main): Task 'attempt_201206230638_0001_r_000000_0' done.
当我连接到此任务的节点时,提到的临时目录为空

更新2:阅读后,我想知道我的问题是使用“s3://”而不是“s3n://”作为输出路径。在我的小样本(存储良好)和整个工作中,我都使用了“s3://”。有没有想过这可能是我的问题

更新3:我现在看到,在AWS的EMR上,s3://和s3n://都映射到s3本机文件系统()

更新4:我又重新运行了两次此作业,每次都增加了服务器和还原程序的数量。其中第一个完成时,89/90减速机输出被复制到S3。第90家说它根据日志成功地复制了,但是AWS支持人员说文件不在那里。他们已经把这个问题上报给了他们的工程团队。我第二次使用更多的还原器和服务器运行时,所有数据都被复制到了S3(谢天谢地!)。然而,一个奇怪的现象是,一些减缩器需要花费很长时间才能将数据复制到S3——在这两次新运行中,有一个减缩器的输出需要1到2个小时才能复制到S3,而其他减缩器最多只需要10分钟(文件大小为3GB左右)。我认为这与EMR使用的S3NativeFileSystem有点问题有关(例如,长时间挂起——我当然要为此付费;以及所谓的未上传的成功上传)。我会先上传到本地HDFS,然后再上传到S3,但我没有上传(等待AWS工程团队的审核)


TLDR;使用AWS EMR直接存储在S3上似乎有问题;他们的工程团队正在研究。

这是AWS方面的一个缺陷,他们已经在最新的AMI版本2.2.1中修复了它,在中简要介绍了

我从AWS得到的详细解释是,当reducer文件>S3的块限制(即5GB?)时,使用multipart,但没有进行正确的错误检查,所以这就是为什么它有时可以工作,而其他时候不能工作的原因


如果其他人继续这样做,请参考我的案例编号62849531。

这是AWS的一个缺陷,他们已在最新的AMI版本2.2.1中修复了它,在中简要介绍

我从AWS得到的详细解释是,当reducer文件>S3的块限制(即5GB?)时,使用multipart,但没有进行正确的错误检查,所以这就是为什么它有时可以工作,而其他时候不能工作的原因


如果其他人继续这样做,请参考我的案例编号62849531。

EMR集群可以将数据以本机方式写入S3和HDFS。这些集群上的HDF是由节点的临时存储生成的,并且仅在集群期间可用。为了确保S3有问题,您可以尝试在整个数据集上运行有问题的查询,但将结果存储在HDFS上?如果查询后在HDFS中看到结果,则很可能意味着S3或其使用存在问题。另外,您是否将路径用作s3://。。。或者s3n://?我在路径中使用了
s3://
。我的整个工作有大约300个2gb文件作为输入。当我用10个2gb文件运行一个示例作业时,使用相同的输出语法,它工作正常(存储到s3)。在关闭集群之前,我在HDFS上达到了峰值,没有看到任何似乎包含数据的目录(尽管我关闭了集群,所以无法再次检查)。关于重新运行完整的作业,并让输出首先转到HDFS,我可以这样做,但对于我来说,另一个作业失败的成本相当高。我希望AWS的工作人员回复我在他们网站上发布的副本forums@MarkGrover-我不知道s3://和s3n://之间有区别。你认为使用“s3://”可能是我的数据没有显示的原因吗?在EMR上,s3://和s3n://是一样的。见上面的编辑。现在,我将把作业的输出存储在HDFS上,然后使用distcp将其传输到S3,您使用S3上的哪个可用区?只有一个减速器吗?我可以很高兴地确认,用于S3的FileOutputCommitter充满了问题,特别是对于美国标准(bi-Coaster)AZ.EMR集群可以将数据本机写入S3和HDFS。这些集群上的HDF是由节点的临时存储生成的,并且仅在集群期间可用。为了确保S3有问题,您可以尝试在整个数据集上运行有问题的查询,但将结果存储在HDFS上?如果查询后在HDFS中看到结果,则很可能意味着S3或其使用存在问题。另外,您是否将路径用作s3://。。。或者s3n://?我在路径中使用了
s3://
。我的整个工作有大约300个2gb文件作为输入。当我用10个2gb文件运行一个示例作业时,使用相同的输出语法,它工作正常(存储到s3)。在关闭集群之前,我在HDFS上达到了峰值,没有看到任何似乎包含数据的目录(尽管我关闭了集群,所以无法再次检查)。关于重新运行完整的作业,并让输出首先转到HDFS,我可以这样做,但对于我来说,另一个作业失败的成本相当高。我希望AWS的工作人员回复dupli