这是我的代码:
s3.textFile("s3n://data/hadoop/data_log/req/20160618/*")
.map(doMap)
.saveAsTextFile()
spark 1.4.1,独立群集
有时(并非总是如此,这很重要)它会抛出此错误:
[2016-09-13 03:22:51,545: ERROR/Worker-1] err: java.io.FileNotFoundException:
No such file or directory
's3n://data/hadoop/data_log/req/20160618/hadoop.req.2016061811.log.0.gz'
但是当我使用
时aws s3 ls s3://data/hadoop/data_log/req/20160618/hadoop.req.2016061811.log.0.gz
该文件存在。
如何避免这个问题?
答案 0 :(得分:0)
问题在于s3的一致性。 即使列出了该文件,它也不存在。尝试使用aws s3 cp文件,你会得到同样的例外。
"写后读写一致性仅对新对象的GETS有效 - 在完全传播更改之前,LISTS可能不包含新对象。"
Is listing Amazon S3 objects a strong consistency operation or eventual consistency operation?