我是用hadoop的streaming方式,使用php语言作为mapper和reducer的实现方式。
我测试的目录结构如下图:
api目录下有个print.php文件,我会在reducer.php中调用print.php中的函数(require_once ‘./api/print.php’)
然后使用-file将 mapper.php, reducer.php,还有print.php全部提交Job,但job失败。
但是如果我把print.php拉出来放在同级目录下,并且在reducer.php中把引用关系改成“require_once ‘./print.php’”如下图:
则可以成功运行。
这个大家可以帮我解一下惑吗?谢谢大家!
我知道答案了,用-cacheArchive选项。贴出来希望能帮助到其他hadoop新手。