1

ストリーミング ジョブで、マッパーで実行可能ファイルを呼び出したいと考えています。それはこのようなものです

mapper.py

print os.popen('./binary').read()

コマンドは

$HADOOP_HOME/bin/hadoop fs -rmr $HADOOP_OUTPUT
$HADOOP_HOME/bin/hadoop  streaming \
    -D mapred.map.tasks=$MAP_NUM  \
    -D mapred.reduce.tasks=$RED_NUM \
    -D mapred.job.map.capacity=500  \
    -D mapred.map.capacity.per.tasktracker=1 \
    -input $HADOOP_INPUT \
    -output $HADOOP_OUTPUT \
    -mapper mapper.py  \
    -file mapper.py binary\

しかし、その結果、バイナリ ファイルは実行されません。どうしてか分かりません。誰でも私を助けることができます

4

1 に答える 1

0

オペレーティングシステムの任意のファイルは、そのファイル形式がファイルを実行可能にするためだけに実行可能にすることはできません (たとえば、ネイティブ実行可能ファイルまたは#/path/to/interpreter最初の行を持つスクリプトです)。

(ファイルを追加した) ファイル システムは、実行許可ビットを設定することによって、ファイルが実行される資格があることを認識している必要があります。これらのビットは、chmodコマンドを使用して設定できます。たとえば、次のようになります。

chmod +x <path-to-file>
于 2012-08-20T10:35:44.500 に答える