2013-02-26 118 views
0

在Hadoop流中使用Perl脚本作为映射器& reducer时,我们如何管理perl模块依赖关系。Hadoop Streaming - Perl模块依赖关系

我想在我的Perl映射器& reducer脚本中使用“Net :: RabbitMQ”。

是否有在Perl/Hadoop的数据流的任何标准的方法来处理类似DistributedCache(Hadoop的Java的MR)

+0

对不起,但我不清楚DistributedCache是​​如何处理这件事的?你能解释一下吗? Perl专家不知道Java和反之亦然。 – user1126070 2013-02-26 09:38:23

+0

DistributedCache将帮助Hadoop Mapreduce实现中的java jar依赖项。我正在寻找一个类似于Perl的Hadoop流媒体。 – user703555 2013-02-27 05:55:14

回答

0

有一对夫妇的方法来处理的依赖,包括指定自定义库路径或创建一个打包的依赖你的Perl应用程序的二进制文件与PAR::Packer。有一些如何在Hadoop::Streaming POD的示例部分中完成这些任务的示例,作者包含对过程的很好描述,以及处理依赖关系的不同方法的一些注意事项。请注意,关于处理Perl依赖关系的Hadoop :: Streaming文档中提供的建议并非特定于该模块。

这里是从Hadoop的::流的文档的摘录(有详细的例子在其中,如先前提到的):

所有perl模块必须在每个Hadoop集群机器上安装。这证明对于大型安装来说是一个挑战。我有一个本地:: lib控制的perl目录,我将其推送到我的所有hadoop框(/ apps/perl5)上的一个固定位置,该框保持最新并包含在我的系统映像中。以前,我使用PAR :: Packer(pp)生成独立的perl文件,除了使用-file选项的jar大小外,它工作得很好。独立文件可以放入hdfs中,然后通过-cacheFile选项包含在jar中。