在Amazon MapReduce上调用已编译的二进制文件

时间:2012-02-07 00:53:53

标签: hadoop amazon-ec2 mapreduce elastic-map-reduce amazon-emr

我正在尝试在Amazon Elastic MapReduce上进行一些数据分析。映射器步骤是一个python脚本,它包含对已编译的C ++二进制文件的调用,称为“./formatData”。例如:

# myMapper.py
from subprocess import *
inputData = sys.stdin.readline()
# ...
p1 = Popen('./formatData', stdin=PIPE, stdout=PIPE)
p1Output = p1.communicate(input=inputData)
result = ... # manipulate the formatted data
print "%s\t%s" % (result,1)

我可以在Amazon EMR上调用这样的二进制可执行文件吗?如果是这样,我将在哪里存储二进制文件(在S3中?),我应该编译它的平台,以及我如何确保我的映射器脚本可以访问它(理想情况下它将在当前工作目录中)。

谢谢!

1 个答案:

答案 0 :(得分:3)

如果确保将二进制文件正确复制到工作节点,则可以通过这种方式调用二进制文件。

请参阅:

https://forums.aws.amazon.com/thread.jspa?threadID=35158

有关如何使用分布式缓存在工作节点上访问二进制文件的说明。