emrfs一致视图和命令行复制/删除

时间:2017-05-18 13:49:12

标签: amazon-s3 amazon-emr

在我的群集上,我启用了emrfs一致视图,并且在运行spark作业时工作正常。

但是,我发现在通用s3操作后手动同步/删除/导入元数据很乏味。

例如,在复制之后,s3变得不一致:

aws s3 cp localfile1 s3://bucket/path/
emrfs sync s3://bucket/path/
emrfs diff s3://bucket/path/

BOTH | MANIFEST ONLY | S3 ONLY
DIR  bucket/path/           (BOTH)
FILE bucket/path/localfile1 (BOTH)

此处,localfile1和元数据是同步的。

aws s3 cp localfile2 s3://bucket/path/
emrfs diff s3://bucket/path/

BOTH | MANIFEST ONLY | S3 ONLY
DIR  bucket/path/           (BOTH)
FILE bucket/path/localfile1 (BOTH)
FILE bucket/path/localfile2 (S3 ONLY)

是否有办法在直接从启用了一致视图的EMR群集执行操作时保持元数据与s3同步?

由于

2 个答案:

答案 0 :(得分:0)

尝试hdfs副本并查看emrfs diff。它将解决问题。 Emrfs一致视图适用于hadoop操作和hadoop工作。

aws s3 cp

命令不会通过hadoop。

因此,当我们对使用aws s3命令复制的对象执行emrfs diff时,它们只会s3

答案 1 :(得分:0)

这里很少有注意事项。 EMRFS一致视图应该仅适用于基于hadoop的作业。如果正在运行非hadoop作业,他/她将必须使元数据和s3数据同步。 AWS公开了诸如删除,同步,差异,导入等aws-cli命令。我们可以使用它们来实现所需的结果。

有时即使我们只运行hadoop作业,仍然会出现不一致的问题。对于这几件我们应该检查的事情是在dynamodb结束时节流。如果未对dynamodb进行限制,请在(emrfs-site.xml)中查找emrfs设置

fs.s3.consistent.retryCount
fs.s3.consistent.retryPeriodSeconds

尝试增加这些值,看看是否有帮助。