如果我在hfds或本地文件系统中有一个文件,是否可以在启用emrfs的情况下将此文件复制到s3,立即关闭集群,并保证此文件在复制操作完成后可供外部读取器列出和读取?或者,emrfs是否仅在为其启用的特定emr集群内保持一致?从hdfs通过emrfs将文件复制到s3会是什么样子?从本地文件系统?
5jdjgkvh1#
我在aws开发者论坛上问过同样的问题--https://forums.aws.amazon.com/thread.jspa?threadid=257220&tstart=25 --这包含了很多有价值的细节,它提供了一个比所有emrfs文档结合imo更好的emrfs概述,但我将提供一个崩溃摘要的崩溃摘要:1) 一致性视图是一个必须在emrfs配置中显式启用的功能,否则只有s3一致性保证。2) emrfs一致性视图只在共享相同emrfs配置的集群内生效——它对正常访问s3的外部客户端没有影响3) s3提供的唯一真正的一致性保证是,以前没有写过的新文件在读取时是一致的,但在列出时是不一致的。因此,如果一个客户机明确地要求一个文件的路径,它知道是新创建的,它总是会得到它,但它可能会或可能不会得到一个列表操作中的文件路径,如果文件以前存在,并不能保证客户端将获得一个读操作的版本。
j2datikz2#
emrfs是为emr hadoop作业创建的对象启用的一致视图。1) emrfs的主要目的是,hadoop作业创建的对象是立即一致的。因此,如果存在依赖关系,这些文件可以用于下一个作业。2) 将文件复制到s3以使imediate与下一个hadoop作业保持一致的方法是,将文件复制到hdfs,然后使用以下命令复制到s3。hdfs dfs-put file.txt/user/hadoop文件/hdfs dfs-cp/user/hadoop/file.txt s3://bucket名称在s3中列出文件是非常昂贵的,如果您希望数据在s3上立即保持一致性,就必须在s3上实现索引。下面是使用dynamodb使文件立即一致的链接https://aws.amazon.com/blogs/big-data/building-and-maintaining-an-amazon-s3-metadata-index-without-servers/?当您使用s3api时,s3的一致性就显现出来了,因为它不会通过emrfs元数据。
2条答案
按热度按时间5jdjgkvh1#
我在aws开发者论坛上问过同样的问题--https://forums.aws.amazon.com/thread.jspa?threadid=257220&tstart=25 --这包含了很多有价值的细节,它提供了一个比所有emrfs文档结合imo更好的emrfs概述,但我将提供一个崩溃摘要的崩溃摘要:
1) 一致性视图是一个必须在emrfs配置中显式启用的功能,否则只有s3一致性保证。
2) emrfs一致性视图只在共享相同emrfs配置的集群内生效——它对正常访问s3的外部客户端没有影响
3) s3提供的唯一真正的一致性保证是,以前没有写过的新文件在读取时是一致的,但在列出时是不一致的。因此,如果一个客户机明确地要求一个文件的路径,它知道是新创建的,它总是会得到它,但它可能会或可能不会得到一个列表操作中的文件路径,如果文件以前存在,并不能保证客户端将获得一个读操作的版本。
j2datikz2#
emrfs是为emr hadoop作业创建的对象启用的一致视图。
1) emrfs的主要目的是,hadoop作业创建的对象是立即一致的。因此,如果存在依赖关系,这些文件可以用于下一个作业。
2) 将文件复制到s3以使imediate与下一个hadoop作业保持一致的方法是,将文件复制到hdfs,然后使用以下命令复制到s3。
hdfs dfs-put file.txt/user/hadoop文件/
hdfs dfs-cp/user/hadoop/file.txt s3://bucket名称
在s3中列出文件是非常昂贵的,如果您希望数据在s3上立即保持一致性,就必须在s3上实现索引。下面是使用dynamodb使文件立即一致的链接https://aws.amazon.com/blogs/big-data/building-and-maintaining-an-amazon-s3-metadata-index-without-servers/?
当您使用s3api时,s3的一致性就显现出来了,因为它不会通过emrfs元数据。