未找到Amazon EMR流式映射器/缩减器

时间:2016-07-03 17:18:04

标签: php amazon-web-services hadoop amazon-s3 emr

我尝试构建我用PHP编写的第一个EMR流应用程序。

在我的本地系统上运行良好: ./producer/target/release/producer 1000 | php mapper.php |排序| php reducer.php

我还尝试使mapper / reducer可执行并添加一个Shebang。

我使用“选择器”选择映射器/缩减器的s3路径,但EMR在其日志中抱怨:

  

引起:java.io.IOException:无法运行程序“/mnt1/yarn/usercache/hadoop/..././mapper.php”:error = 2,没有这样的文件或目录

似乎EMR没有将映射器文件复制到hadoop集群。

知道找不到映射器的原因吗?

1 个答案:

答案 0 :(得分:0)

错误令人困惑;它不是mapper.php,而是php可执行文件本身。 PHP没有安装在最新的EMR AMI核心&任务节点。你需要安装它。

任何简单的解决方案都是添加引导项。使用以下命令创建bootstrap.sh:

#!/usr/bin/php

yum -y install php

然后将其上传到s3。然后,当您选择引导程序文件时,从s3中选择bootstrap.sh,它将在运行您的步骤之前安装PHP。