之前发现安装了eclipse hadoop 插件后,多了一个run on hadoop,但是点击没有什么效果。最开始也没有想着要提交作业到集群,就没怎么在意。
最近需要把作业提交到集群,又不想安装常规的那么麻烦的方式,打包运行,对于我这种习惯IDE编程的,总觉得别扭。而且想到,既然eclipse提供了这个插件,那么打包jar文件,并分发集群,是完全可以自动实现的。可是,为什么点击run on hadoop没有反应?
然后我就在网上搜索相关解决方法发现(http://zy19982004.iteye.com/blog/2031172)
- 下载0.20.3版本的plugin。下载地址:https://issues.apache.org/jira/secure/attachment/12460491/hadoop-eclipse-plugin-0.20.3-SNAPSHOT.jar。
- 删除eclipse/plugin目录下的0.20.2版本,将新下载的0.20.3版本放入plugin目录下,修改名称为0.20.2版本的名称。
- 重新启动Eclipse。
于是我就按照这个方式做了,果然,run on hadoop可以有作用了,但是仔细看了下输出日志,依然是本地执行模式,没有分发到集群,并提示有一个警告 WARN mapred.JobClient: No job jar file set. User classes may not be found。
这我就感到比较纳闷了。于是继续在网上搜索原因。有的人说是要自己打包,这个插件并不提供打包分发集群的方法。但是我怎么想也觉得不科学,如果这个插件这么傻,那么有多大用?然后我发现了这篇文章http://zy19982004.iteye.com/blog/2031172这让我相信我的想法是对的,问题不在于插件没这功能,一定是别的原因。接着,我又看到了这篇文章http://www.kaixinguo.so/archives/63.html?utm_source=rss。我想到我的eclipse是最新版本的,这这插件是那么老的,也许就是这个问题。
干脆下载一个旧版的eclipse试试。于是我下载了3.5版本的eclipse,发现可以顺利提交作业了。
插件跟hadoop、跟eclipse不兼容的情况很多,所以网上有很多自己编译插件的教程。