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 回答