1

Amazon Elastic MapReduceでいくつかのデータ分析をしようとしています。マッパーステップは、 "./formatData"というコンパイル済みのC++バイナリへの呼び出しを含むpythonスクリプトです。例:Amazon MapReduceでコンパイルされたバイナリを呼び出す

# 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で?)、どのプラットフォームでコンパイルすればいいですか、どのように私のマッパースクリプトにアクセスできるか(理想的には現在の作業ディレクトリにあります)。

ありがとうございます!

答えて

3

バイナリがワーカーノードに正しくコピーされていることを確認すると、バイナリをそのように呼び出すことができます。

参照:ワーカーノード上のバイナリファイルにアクセスできるように分散キャッシュを使用する方法の説明については

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

+0

ありがとうございました。また、私はどのプラットフォームをコンパイルすべきですか? – tba

+0

Linux(弾力的なmap-reduceはAmazon Linux上で動作します) – gwt

+1

古いlinuxボックスにビルドできないので、このガイドがEMRでビルドされています。http://docs.amazonwebservices.com/ElasticMapReduce/latest/DeveloperGuide/usingemr_buildingmodules.html – tba

関連する問題