你可以 在 map/reduce 的setup中获取到提交机的实体bean,然后在m、r中操作 |
本帖最后由 wjhdtx 于 2014-11-20 09:39 编辑 bioger_hit 发表于 2014-11-19 21:40 你说的rest api是反射 api吗?? 我知道的是在TaskTracker(yarn之前这么叫,暂且这么叫)中,调用方式是:TaskRunner 创建子进程 MapTask,在 MapTask 中又创建了MapRunner,在MapRunner中会调用map方法。 我想jar包是不是在TaskRunner中加载,而map方法是在TaskRunner创建的子进程中运行的,所以得不到?
实在不行不用spring了,退回到原始社会,自己写代码来搞 |
本帖最后由 bioger_hit 于 2014-11-19 21:43 编辑 楼主框架不是说能调用就能调用的。在rest api中不能调用Java api,同样Java api也不能调用rest api。 如果楼主这不是谁调用谁的问题,而是你的用法要符合规则。 想在spring中使用mapreduce就需要配置hadoop的spring,同样调用spring bean也是这样。 楼主切忌浮躁,spring这块研究还是不多的,即使配置了也会遇到问题,难度还是不小的。 要么这么问题先放放,要么楼主自己研究下。 但是在spring中使用mapreduce,需要配置这是肯定的,而且是绕不过的。 |
muyannian 发表于 2014-11-19 17:53 简单看了一下,你说的这个是在spring中运行mapreduce,和我的需求应该不一样。 就算我通过spring来调用mapreduce,我在mapreduce中也逃不掉调用spring中的bean来访问数据库。 |
wjhdtx 发表于 2014-11-19 17:41 可以参考下面的,改一下配置,这方面的资料不是太多。 Spring Hadoop 快速入门:如何配置Spring及验证mapreduce http://www.aboutyun.com/thread-10020-1-1.html |
muyannian 发表于 2014-11-19 17:24 先谢谢你的回复。 map任务分发到slave机器上我是知道的,会在salve中创建java子进程来运行map任务。 我是将mapreduce打了个jar包,在hadoop集群中的机器上运行hadoop jar命令来执行。该jar包中有lib目录,lib目录中依赖有的第三方jar包(比如spring相关的jar包)。 纠正你一点的是,第三方的jar包肯定会过去的(包括spring以及其他的),我之前解析json的时候在map中用过json的第三方jar。 我这并不是在spring中运行mapreduce程序,而是在mapreduce中调用spring中的bean。 求大神!!!!(谢谢) |
这应该跟配置有关系,map是被分发的,很可能spring包没有过去。所以找不到类了。 下面内容,可能对你有帮助 Spring Hadoop 快速入门:如何配置Spring及验证mapreduce http://www.aboutyun.com/thread-10020-1-1.html Spring hadoop 访问hbase 入门教程 http://www.aboutyun.com/thread-9489-1-1.html spring-data-hadoop maven配置详解及如何调试 http://www.aboutyun.com/thread-10021-1-1.html Spring for Apache Hadoop介绍及官方文档下载 http://www.aboutyun.com/thread-10019-1-1.html |