我最近在Windows 7机器上使用hadoop设置了vmware实例。我还在eclipse中设置了hadoop插件,并在VM上成功运行了一个示例map-reduce程序。但是,我在Eclipse中对mapreduce程序所做的更改并没有反映在运行中。当我通过eclipse运行它时,它仍然运行初始程序。我尝试使用我更改的代码从头开始设置一个新的map reduce程序,然后我可以使用我的更改来运行它。但是,我在第一次运行后所做的任何更改都不会生效。如果代码有编译错误,Eclipse抱怨并且它没有运行但是当它运行时它仍然运行第一个版本。 我正在使用hadoop 0.18.0,来自yahoo教程和eclipse 3.3.2的vmware图像。 我错过了什么?
答案 0 :(得分:2)
如果有人陷入同一陷阱,我就是如何解决这个问题的。
此问题的解决方案是选择“运行 - >运行方式 - >在Hadoop上运行”。这是创建一个传递给Hadoop实例的.jar文件(和site.conf文件)的原因。创建.jar文件后,它将被复制到项目的“运行/调试设置 - >类路径”中列出的文件夹中。这就是Hadoop执行的。
如果您将map reduce程序作为常规Java应用程序运行(例如使用运行快捷键),就像我正在做的那样;它仍然运行hadoop程序,但Hadoop的.jar文件不会重新创建。这导致同一程序一次又一次地运行。