windows + hadoop + eclipse 过程记录

昨天在本机上搭建了伪分布式的hadoop,今天决定在eclipse中搭建hadoop的环境,毕竟磨刀不误砍柴工

安装的hadoop是2.7.5版本,要想使用eclipse写MapReduce需要一个   hadoop-eclipse-plugin-2.7.5.jar

在网上找了一波发现并没有可以下载下来直接使用的包,于是就到  https://github.com/winghc/hadoop2x-eclipse-plugin   下载源码,自己来编译

在编译此包前还需要   ant  可以在 http://ant.apache.org/  下载

下载好两个文件后解压

ant:配置环境变量

Path中添加路径

然后就是浩大的改文件工程

hadoop2x-eclipse-plugin-mastersrccontribeclipse-pluginuild.xml

hadoop2x-eclipse-plugin-mastersrcivylibraries.properties

hadoop2x-eclipse-plugin-masterivylibraries.properties

 修改上述内容并修改


 上面需要修改的内容可以到   hadoop-2.7.5sharehadoopcommonlib   中查看


接下来进行编译,将在DOS中将文件夹切换到   hadoop2x-eclipse-plugin-mastersrccontribeclipse-plugin

执行

ant jar -Dversion=2.7.5 -Declipse.home=C:Userslichaoxingeclipsejava-oxygeneclipse -Dhadoop.home=D:hadoop-2.7.5

注: C:Userslichaoxingeclipsejava-oxygeneclipse  是eclipse的路径,D:hadoop-2.7.5  是hadoop的路径

然后回车后发现报了N多错误

其中一部分截图

问题在于指定的eclipse路径下的找不到这些包,原因是我在安装eclipse的时候下载的是.exe文件,在 eclipsejava-oxygeneclipseplugins  下没有这些包

于是我果断去下载了源码文件,果然在  eclipseplugins 含有好多包

我将里面的包全部复制到  eclipsejava-oxygeneclipseplugins 中,再此编译,成功了

后来我发现原来安装的eclipse文件夹下其实是有那些依赖包的,只不过不在上述文件夹下,而是在   eclipsejava-oxygeneclipsedropinsplugins  中

如果更改下build.xml文件的内容,使路径为这个应该也可以解决问题,这里由于急于搭建好开发环境没有进行实验

由于强迫症,我把之前的eclipse删掉了,使用了新下载的源码包(eclipse4.8)

将  hadoop-eclipse-plugin-2.7.5.jar  拷贝到  eclipse  的  plugins 文件夹下

启动eclipse,终于见到了久违的 Hadoop  了,配置一下Hadoop的安装路径

 在面板的下面 Map/Reduce Locations 中右键新建一个连接

点击右下角finish后成功创建连接,但是点击连接名前面的尖号就会报  空指针异常

找了大量资料,没能解决此问题,在一个博客里看到如果配置正确,可以忽略此问题  (https://blog.csdn.net/psp0001060/article/details/54728436

于是尝试测试一下,准备好用于wordcount的file1,里面写了一点内容,上传到hdfs的input文件夹内,并指定输出在output/wordcount/

在代码区右键run as 选择hadoop

运行后报log4j的相关错误

解决办法

  • 在mian中添加一行代码
BasicConfigurator.configure();

 再次运行,成功执行

  • 工程文件夹下新建一个Source Folder,命名为source

右键source新建,Other,选择General下的File并命名为  log4j.properties  

在文件中添加

log4j.rootLogger=INFO, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=target/spring.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n

 运行代码,成功解决问题


原文地址:https://www.cnblogs.com/xinglichao/p/9642838.html