hadoop中mapper和reducer依赖的文件只能放在和mapper,reducer函数同级目录中吗?

我是用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’”如下图:
图片描述
图片描述
图片描述

则可以成功运行。
这个大家可以帮我解一下惑吗?谢谢大家!

阅读 2.7k
1 个回答

我知道答案了,用-cacheArchive选项。贴出来希望能帮助到其他hadoop新手。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进