我在这里对AWS的EMR我Hadoop的工作不被保存到S3的问题。 当我运行在一个较小的样本作业时,作业存储输出就好了。 当我运行相同的命令,但在我的完整数据集,作业完成一次,但并没有什么存在的,我指定我的输出去S3。
显然有一个与AWS EMR错误在2009年 ,但它是“固定”。
任何人都曾经有这个问题? 我仍然有我的集群网络,希望数据是埋在服务器上的某个地方。 如果任何人有一个想法在哪里可以找到这些数据,请让我知道!
更新:当我看到从减压器一个日志,一切都看起来不错:
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:看完后在Hadoop的Amazon S3和S3N之间的区别 ,我想知道如果我的问题是使用“S3://”,而不是“S3N://”作为我的输出路径。 在我的我的两个小样本(即商店罚款),和我的完整的职位,我用“S3://”。 如果上这可能是我的问题有什么想法?
更新3:我现在看到AWS的EMR,S3://和S3N://都映射到S3本地文件系统( AWS EMR文档 )。
更新4:我重新运行该作业两次,每次增加服务器和减速机的数量。 第一这两个与九十零分之八十九减速器输出完成的被复制到S3。 90表示,根据日志成功复制,但AWS支持说文件不存在。 他们已经上报这个问题的工程团队。 我有更多的减速机,实际上与所有数据服务器完成第二次运行复制到S3(谢天谢地!)。 一个奇怪虽然是一些减速FOREVER取到数据S3复制 - 在这两个新的运行的,有一个减速的输出用了1个或2个小时复制到S3,在那里与其他减速机只用了最大10分钟(文件是3GB左右)。 我认为这是涉及到与S3NativeFileSystem通过EMR使用一些错误(例如长的吊 - 这我就要收费了,当然,那不会上载到涉嫌上传成功)。 我上传到本地HDFS第一,然后到S3,但我在这方面有问题,以及 (待定AWS工程团队的审查)。
TLDR; 使用AWS EMR直接存储在S3似乎马车; 他们的工程团队正在调查。