准备工作:
Hadoop安装完成(我的版本为1.2.1)。
搞一个比较干净的Eclipse。
下载与Hadoop版本相匹配的插件:hadoop-eclipse-plugin-1.2.1.jar
安装、配置:
1. 将插件拷贝到eclipse安装目录的plugins文件夹中,如果重新打开eclipse后看到有如下视图,则说明你的hadoop插件已经安装成功了。
Hadoop installation directory指定你的Hadoop解压了路径。
2. 设置MapReduce Location。
在Window-->Show View中打开Map/Reduce Locations。
在Map/Reduce Locations中新建一个Hadoop Location。在这个View中,右键-->New Hadoop Location。在弹出的对话框中你需要配置Location name,如Hadoop,还有Map/Reduce Master和DFS Master。这里面的Host、Port分别为你在mapred-site.xml、core-site.xml中配置的地址及端口。
连接成功则会显示DFS里面的内容
3. 运行WorldCount程序。
发现报错:
14/12/14 15:32:44 ERROR security.UserGroupInformation: PriviledgedActionException as:Administrator cause:java.io.IOException: Failed to set permissions of path: \tmp\hadoop-..此处省略...\.staging to 0700
Exception in thread "main" java.io.IOException: Failed to set permissions of path: \tmp\...此处省略. to 0700
网上说是因为Windows下文件权限问题,需要将hadoop-core-1.2.1.jar中的src/core/org/apache/hadoop/fs/FileUtil.java里面调用checkReturnValue方法的地方注掉即可(在Windows下不需要去检查),然后重新编译、打包。我的做法是将hadoop-core-1.2.1.jar中的源码修改之后,重新编译生成class文件,找到FileUtil.class直接将jar包中的文件替换即可。
如果你还嫌麻烦,直接下载我编译好的即可。点击下载hadoop-core-1.2.1.jar
再次运行WorldCount程序,跑起来了。
友情提示:Eclipse如何跑MapReduce程序,在我的另一篇博客MapReduce统计词语出现次数中有详细描述.