【发布时间】:2014-01-22 11:20:00
【问题描述】:
我创建了一个 Matlab 程序,我必须在 Hadoop 中运行它。出于测试目的,我使用 Octave 进行 Hadoop 图像处理。我有使用集群的 Hadoop 环境。对于图像处理,我使用的是 Hadoop 流 jar 文件。为 octave 简单的图像处理程序创建的 Shell 脚本。在 shell 脚本中使用了本地文件系统映像文件,它是成功的。但现在我要在 Hadoop 环境中运行它。为此,我应该给出存储在 HDFS 中的图像。我在 Hadoop 中尝试过这个,但它不会工作并且不会给出输出图像。例如
#!/bin/bash
/usr/bin/octave <<EOF
rgbImage = imread("/usr/2003vre.jpg");
imwrite(rgbImage,"/usr/OT/newnewnew.jpg");
这里我提到的文件路径是在本地文件系统中。请告诉我应该如何在这个脚本中给出 HDFS 的输入文件路径。
请告诉我,我应该在哪里为这个 octave 程序(在脚本或 hadoop 流输入阶段)提供输入,如下所示
hadoop@isro:/usr/local/grid/hadoop$ $HADOOP_HOME/bin/hadoop jar $HADOOP_HOME/hadoop-streaming.jar -mapper /usr/OT/octave.sh -file /usr/OT/octave.sh input /usr/OT/2003vre.jpg -output /usr/OT/output
对不对(输入输出的格式)
提前谢谢...
【问题讨论】:
-
“但它不会工作”......它有什么问题
-
所以格式是对的,不是吗?
标签: matlab shell hadoop octave hadoop-streaming