2013-02-26 113 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中。