您的位置:首页 > 编程语言 > Java开发

Hello World (hadoop-eclipse插件安装与测试)

2016-03-13 22:32 197 查看
写在前面:

文章内容为2015年年初准备毕业设计时随手记录的笔记

注:

相关压缩包、文件丢到了:http://pan.baidu.com/s/1ntKGg0D

工具:

Win 8

Eclipse 4.4

Hadoop 2.5.2

hadoop-eclipse-plugin-2.5.2.jar

正文:

插件选择:

根据论坛的文章,版本要求比较严格,所以下载了2.5.2的插件:hadoop-eclipse-plugin-2.5.2.jar

插件安装:

直接把jar包丢到%ECLIPSE_HOME%\plugins下,然后启动eclipse

配置及测试:

Window -> Preferences 找到 Hadoop



Windows系统上的hadoop只需要把安装包解压即可,如下图:



接下来在view中找到mapreduce



调出窗口,在空白处右键创建新的location:





Map/Reduce(V2) Master的Port应该是mapred-site.xml中配置的mapreduce.jobtracker.http.address,因为看到V1里用的就是mapred-site.xml中mapred.job.tracker的配置端口,在V2中就对应到了这个。

DFS Master的Port是在core-site.xml中设置的。

User name这里比较关键,自己的笔记本默认的Administrator的名字是MXMxz,所以这个窗口打开的时候默认也是MXMxz,在网上看步骤的时候有看到说把系统管理员的名字改成hadoop(这个也是根据自己hadoop集群搭建时,linux主机、hadoop的用户名),于是自己在用户账户这个里面改了一下:



本以为就OK了,结果有两个地方出错:

0. eclipse里创建location的时候这个user name忘了改;

1. 系统管理员的名字还有一层,如下图所示:


这个是已经改好之后的样子,之前在用户帐户那里改的是"全名",把那个"名称"改了之后再次重启电脑,才彻底OK。

关于用户名这个只是个插曲,但也耽误了不少时间。

接下来创建好了location,切换到map/reduce模式:



在workspace里就能看到创建好的location了:



=======================昏割线=======================

接下来是所谓的WordCount代码的测试:

new一个Map/Reduce工程:







创建类org.apache.hadoop.examples.WordCount:

从hadoop-2.5.2-src中拷贝覆盖(hadoop-2.5.2-src\hadoop-mapreduce-project\hadoop-mapreduce-examples\src\main\java\org\apache\hadoop\examples\WordCount.java)

创建log4j.properties文件:(这段都是网上随便copy的)

在src目录下创建log4j.properties文件,内容如下:

log4j.rootLogger=debug,stdout,R
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p - %m%n
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=mapreduce_test.log
log4j.appender.R.MaxFileSize=1MB
log4j.appender.R.MaxBackupIndex=1
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
log4j.logger.com.codefutures=DEBUG


在hdfs上先创建一个input,把hadoop根目录下的README.txt上传(在hadoop-2.5.2目录下执行)

bin/hadoop fs -mkdir -p input

bin/hadoop fs -copyFromLocal README.txt input



设置下运行的相关变量:



设置下输入和输出:



=======================昏割线=======================

接下来就是。。。见证。。。各种报错的时刻:

<具体的报错信息和解决方法直接看:这篇博客>

首先是报空指针(问题2),查了一下有介绍这个问题,说是hadoop2.0以上因为没有把winutils.exe编译进来,顺便又看到题主说后续的一个报错,根据答案,知道还缺了一个hadoop.dll文件。去网上下载了和版本相同的,文件都换好之后,环境变量里配置了HADOOP_HOME,然后重启电脑。

再次执行,提示还有这个空指针问题,详见问题3,临时先copy了源代码修改了一下。

再次执行,内存溢出。。继续随手百度,说把执行时的JVM设置下:



再次执行:



OK,顺利结束。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: