Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.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
Hadoop 在EMR中访问S3中的数据_Hadoop_Amazon S3_Amazon Emr_Emr - Fatal编程技术网

Hadoop 在EMR中访问S3中的数据

Hadoop 在EMR中访问S3中的数据,hadoop,amazon-s3,amazon-emr,emr,Hadoop,Amazon S3,Amazon Emr,Emr,我有一个存储在S3中的大型文本文件,可以在多节点集群上使用“S3:///folder/folder/file”格式从EMR(比如PIG)中直接访问它 我的问题是关于数据传输到数据节点的效率。我相信S3中的数据以与HDFS类似的方式存储在块中 读取文件时,如何将其拆分并发送到每个数据节点 数据节点的分配是否由主节点/作业跟踪器控制 将文件复制到HDFS并访问它是否更有效 通常,在拆分时,从hdfs读取和从s3读取没有区别S3FileSystemclass(s3输入的存储类)将使用公共位置和偏移量来

我有一个存储在S3中的大型文本文件,可以在多节点集群上使用“S3:///folder/folder/file”格式从EMR(比如PIG)中直接访问它

我的问题是关于数据传输到数据节点的效率。我相信S3中的数据以与HDFS类似的方式存储在块中

  • 读取文件时,如何将其拆分并发送到每个数据节点
  • 数据节点的分配是否由主节点/作业跟踪器控制
  • 将文件复制到HDFS并访问它是否更有效
  • 通常,在拆分时,从hdfs读取和从s3读取没有区别S3FileSystemclass(s3输入的存储类)将使用公共位置和偏移量来获取s3文件块(使用HTTP请求,包括头中的位置、偏移量信息)。 更多详细信息,您可以查看hadoop发行版中的代码

  • 是的,与HDFS程序相同

  • 这取决于工作流程。如果您读取一次,查询多次,您可能希望将文件复制到HDFS,这将受益于本地I/O。否则,您可以只使用s3作为存储。S3更稳定,具有无限的存储空间,尽管这可能比HDFS慢一点。(我知道Netflix在很多情况下使用s3作为emr存储,正如他们所说的那样,它工作得很好)

  • PS:S3DistCp可以帮助您在HDFS和S3之间进行快速复制