弹性MapReduce引导程序用于安装Perl模块

时间:2012-10-09 22:09:37

标签: perl hadoop-streaming amazon-emr

我正在尝试编写一个Perl脚本,该脚本将在Elastic MapReduce的Streaming功能下作为映射器运行。我正在尝试使用Net :: Amazon :: S3(或者说可能更具可移植性的Amazon :: S3)来为S3做一些额外的I / O文件。该模块不在默认的AMI上,所以我试图在bootstrap-action脚本中使用CPAN来安装它。引导脚本目前包含:

perl -MCPAN -e'CPAN :: Shell-> install(Amazon :: S3)'

然而,在15分钟后,引导动作仍然没有完成,所以我假设它正在等待某种输入。我环顾四周,但没有找到任何加载Perl模块的bootstrap-action脚本的例子。有人可以告诉我吗?

提前致谢...

2 个答案:

答案 0 :(得分:1)

  • 从配置为~/.cpan/CPAN/MyConfig.pm的计算机中复制cpan
  • cpan配置选项prerequisites_policy设置为follow
  • 将env var PERL_MM_USE_DEFAULT设置为1

答案 1 :(得分:1)

找到一种更简单,更快捷的方式。看起来大多数CPAN模块也可以通过apt-get获得。我有一个引导动作脚本现在说:

#!/bin/bash -e

source /etc/profile
# Make sure we have all of the dependencies in place for our Perl script.
sudo apt-get install -y libjson-perl
sudo apt-get install -y liburi-encode-perl

请注意,这不会加载我在原始问题中询问的S3模块。我已经更改了我的代码,因此我不再需要该功能了。但是,Net :: Amazon :: S3可以作为libnet-amazon-s3-perl使用

sudo apt-get install -y libnet-amazon-s3-perl 

应该做的。

信息转到http://www.deepakg.com/prog/2009/01/cpan-modules-on-ubuntu-apt-get-vs-perl-mcpan/获取信息。