根据上篇《win7下eclipse连接hadoop》已配置好环境,现创建一个mapreduce程序,通过eclipse远程执行mapreduce工程。
环境:
1、windows7、eclipse
2、centos6.6、hadoop版本为CDH5.4.1,4台物理机搭建的集群
1、为了后面方便,在这里修改hosts文件:
2、新建mapreduce工程
2.1 配置hadoop的安装路径:
将hadoop的压缩包解压到windows环境中,将该目录配置进eclipse
2.2 新建项目 File–New–Other–Map/Reduce Project 命名为MR1, 然后创建类org.apache.hadoop.examples.WordCount,从hadoop中拷贝覆盖
(C:\hadoop\CDH-5.4.1-1.cdh5.4.1.p0.6\share\doc\hadoop-0.20-mapreduce\examples\src\org\apache\hadoop\examples\WordCount.java)
2.3 在src目录下创建log4j.properties文件,内容如下:
2.4 将C:\hadoop\CDH-5.4.1-1.cdh5.4.1.p0.6\jars加载进去
2.5 在eclipse中点击WordCount.java,右键,点击Run As—>Run Configurations,配置运行参数,即输入和输出文件夹
3 运行
Run on hadoop运行报错:
A) 权限问题
解决方案:
创建一个新的用户,该用户名与hadoop用户名一致,用该用户登录,在该环境下运行即可解决
B) 缺少插件
第一个问题的解决方案有2种:
1)不想重启电脑可以在MapReduce程序里加
System.setProperty("hadoop.home.dir", "C:\hadoop\CDH-5.4.1-1.cdh5.4.1.p0.6")
2)或者设置环境变量
HADOOP_HOME= C:\hadoop\CDH-5.4.1-1.cdh5.4.1.p0.6
追加环境变量path内容:%HADOOP_HOME%/bin
第二个问题的解决方案:
下载相应插件,拷贝到C:\hadoop\CDH-5.4.1-1.cdh5.4.1.p0.6\bin里
将相应的xml配置文件放到src目录下:
(注:相应的xml配置文件放到src目录下是为了完全分布式运行,如果不放这些配置文件也可以运行,此时并不是完全分布式运行,你会发现job的名称里带有local字样,此时如果想要完全分布式运行,则可将.java文件打成jar包,放入hadoop环境中运行)
至此,运行成功