栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在Mapper(Hadoop)中使用MATLAB代码?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在Mapper(Hadoop)中使用MATLAB代码?

正如您可能已经怀疑的那样,由于MATLAB的运行时要求,这本来就很难做到。尝试在Condor上运行MATLAB代码时,我有类似的经历(必须分发运行时库)。

就您列出的选项而言,选项1最有效。同样,您可能无法避免使用Linux。

但是,如果您不想失去高级软件(例如MATLAB,Octave,Scilab等)提供的便利,则可以尝试将Hadoop流与Octave可执行脚本结合使用。

Hadoop流式处理并不关心可执行文件的性质(根据此文档,它是可执行脚本还是可执行文件,网址为(http://hadoop.apache.org/common/docs/r0.15.2/streaming.html))

它所需要的就是给它一个“可执行文件”,此外它还可以a)从stdin读取,b)将输出发送到stdout。

GNU
Octave程序可以转换为可执行脚本(在Linux中),能够从stdin读取并将输出发送到stdout(http://www.gnu.org/software/octave/doc/interpreter/Executable-
Octave-Programs .html)。

作为一个简单的例子,考虑一下:

创建一个包含以下内容的文件(例如“ al.oct”):

#!/bin/octave -qf  (Please note, in my installation i had to use "#!/etc/alternatives/octave -qf")Q = fread(stdin); #Standard Octave / MATLAB pre from here ondisp(Q);

现在,从命令提示符处发出以下命令:

chmod + x al.oct

al.oct现在是可执行文件…您可以使用“
./al.oct”执行它。要查看stdin,stdout适合的位置(以便可以在Hadoop中使用它),可以尝试以下操作:

>>cat al.oct|./al.oct|sort

或换句话说…“将”文件al.oct捕获,将其输出传递到可执行脚本al.oct,然后将al.oct的输出传递给sort实用程序(这只是一个示例,我们可以使用“
cat”的任何文件,但是由于我们知道al.oct是一个简单的文本文件,因此我们仅使用此文件)。

当然,Octave可能不支持您的MATLAB代码尝试调用的所有功能,但是这可能是使用Hadoop
Streaming的另一种方式,而又不会失去高级代码的便利性/功能。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/440999.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号