在Windows上使用Eclipse配置Hadoop MapReduce开发环境
1. 系统环境及所需文件
- windows 8.1 64bit
- Eclipse (Version: Luna Release 4.4.0)
- hadoop-eclipse-plugin-2.7.0.jar
- hadoop.dll & winutils.exe
2. 修改Master节点的hdfs-site.xml
添加如下内容
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
旨在取消权限检查,原因是为了解决我在windows机器上配置eclipse连接hadoop服务器时,配置map/reduce连接后报以下错误,org.apache.hadoop.security.AccessControlException: Permission denied:
3. 配置Hadoop插件
- 将下载的hadoop-eclipse-plugin-2.7.0.jar文件放到Eclipse的plugins目录下,重启Eclipse即可看到该插件已生效
- 创建New hadoop location, Eclipse菜单栏Window -> Show View -> Other MapReduce Tools -> Map/Reduce Locations
3. 配置完毕,查看效果
4. 创建一个Map/Reduce Project
- 新建项目 File–New–Other–Map/Reduce Project 命名为WordCount
(从hadoop-2.6.0-cdh5.4.1源码中拷贝WordCount.java, F:\DevTools\hadoop-2.6.0-cdh5.4.1\src\hadoop-mapreduce-project\hadoop-mapreduce-examples\src\main\java\org\apache\hadoop\examples\WordCount.java)
2.java.lang.UnsatisfiedLinkError:org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)
异常问题
修改Master节点中hadoop-2.6.0-cdh5.4.1\src\hadoop-common-project\hadoop-common\src\main\java\org\apache\hadoop\io\nativeio\NativeIO.java
然后在/src/hadoop-common-project/hadoop-common目录下 用maven重新编译jar包
mvn package -Pdist,native -DskipTests -Dtar -e -X
编译完成后会在hadoop-common/target生成相应的jar包只需要用hadoop-common-2.6.0-cdh5.4.1.jar替换掉windows下$HADOOP_HOME\share\hadoop\common目录对应的jar包
5. windows下运行环境配置
将下载下来的hadoop.dll,winutils.exe拷贝到$HADOOP_HOME/bin目录下
6. 运行WordCount Project
在eclipse中点击WordCount.java,右键,点击Run As—>Run Configurations,配置运行参数,即输入和输出文件夹
hdfs://Master:9000/input
hdfs://Master:9000/output
(注意:如果output目录已经存在,则删掉或换个名字,如output01,output02 。。。 )