EMR如何处理输入和输出的s3存储桶?

时间:2017-11-09 20:31:06

标签: python apache-spark amazon-emr

我正在启动EMR群集,并且我已经创建了指定的in the EMR docs存储桶,但是我应该如何上传数据并从中读取?在我的spark提交步骤中,我说使用s3://myclusterbucket/scripts/script.py的脚本名称是否输出不会自动上传到s3?如何处理依赖项?我已经尝试使用指向s3存储桶内的依赖zip的pyfiles,但继续找回文件'

1 个答案:

答案 0 :(得分:1)

由于EMRFS(基于S3的AWS专有Hadoop文件系统实现),EMR中的MapReduce或Tez作业可以直接访问S3,例如,在Apache Pig中你可以做 loaded_data = LOAD 's3://mybucket/myfile.txt' USING PigStorage();

不确定基于Python的Spark作业。但是一种解决方案是首先将对象从S3复制到EMR HDFS,然后在那里处理它们。

有多种方法可以复制:

您还可以使用awscli(或hadoop fs -copyToLocal)将对象从S3复制到EMR主实例本地磁盘(反之亦然),例如aws s3 cp s3://mybucket/myobject .