一、删除hadoop插件(如果你已经装一个hadoop版本相应的插件)
1、到eclipse安装目录下的\plugins文件夹中刷出 hadoop的插件 2、删除到eclipse安装目录下的\configuration\org.eclipse.update文件夹 3、启动eclipse 4、如果左上角有map/reduce图标,点击---> close 5、关闭eclipse,删除到eclipse安装目录下的\configuration\org.eclipse.update文件夹二、编译hadoop eclipse 插件
1、在eclipse里新建一个java项目,名字随意。2、把hadoop 1.0.2解压目录\src\contrib\eclipse-plugin下所有文件直接拖拽到项目中。\src\contrib目录下的build-contrib.xml也拖拽到项目中。 3、修改build-contrib.xml:找到<property name="hadoop.root" location="${root}/../../../"/>修改location为hadoop1.0.2实际解压目录,在其下添加
<property name="eclipse.home" location="D:/Programming/Eclipse"/>
<property name="version" value="1.0.2"/>
具体位置需要改为你的,注意location里的斜杠方向。
4、修改build.xml:找到<import file="../build-contrib.xml"/>,改为<import file="build-contrib.xml"/>
在build.xml中添加:
<path id="hadoop-jars">
<fileset dir="${hadoop.root}/">
<include name="hadoop-*.jar"/>
</fileset>
</path>
在<path id="classpath">中添加:<path refid="hadoop-jars"/>
5、在hadoop解压目录下复制两个jar,没有目录就新建这些目录。分别是:\hadoop-core-1.0.2.jar 到 \build\hadoop-core-1.0.2.jar;\lib\commons-cli-1.2.jar到\build\ivy\lib\Hadoop\common\commons-cli-1.2.jar
6、右键eclipse里的build.xml选择run as - ant build。等待一小会就好了。可以通过编译日志,找到插件产生目录:[jar] Building jar: E:\hadoop\hadoop-1.1.1\hadoop-1.1.1\build\contrib\eclipse-plugin\hadoop-eclipse-plugin-1.1.1.jar
7、这个jar包还不行,虽然能创建视图,新建location,但是连接的时候会各种报错。缺少hadoop的jar包,【引用参考1】将/lib目录下的 commons-configuration-1.6.jar , commons-httpclient-3.0.1.jar , commons-lang-2.4.jar , jackson-core-asl-1.8.8.jar 和 jackson-mapper-asl-1.8.8.jar 等5个包复制到hadoop-eclipse-plugin-1.0.2.jar的lib目录下(用winRAR打开hadoop-eclipse-plugin-1.0.2.jar,拖进去就行)。然后,修改该包META-INF目录下的MANIFEST.MF,将classpath修改为一下内容:
Bundle-ClassPath: classes/,lib/hadoop-core.jar,lib/commons-cli-1.2.jar,lib/commons-httpclient-3.0.1.jar,lib/jackson-core-asl-1.8.8.jar,lib/jackson-mapper-asl-1.8.8.jar,lib/commons-configuration-1.6.jar,lib/commons-lang-2.4.jar。
8、至此,这个插件就算编译完成了。推荐使用link方式挂载到eclipse中。
3、安装插件
1、拷贝Hadoop项目中的eclipse plugin jar文件到eclipse 安装目录plugin目录下2.重启eclipse,配置hadoop installation directory。如果安装插件成功,打开Window-->Preferens,你会发现Hadoop Map/Reduce选项,在这个选项里你需要配置Hadoop installation directory。配置完成后退出。
3.配置Map/Reduce Locations。
在Window-->Show View->other...,在MapReduce Tools中选择Map/Reduce Locations。
在Map/Reduce Locations(Eclipse界面的正下方)中新建一个Hadoop Location。在这个View中,点击鼠标右键-->New Hadoop Location。在弹出的对话框中你需要配置Location name,可任意填,如Hadoop,以及Map/Reduce Master和DFS Master。这里面的Host、Port分别为你在mapred-site.xml、core-site.xml中配置的地址及端口。我的这两个文件中配置如下:
mapred-site.xml
- <property>
- <name>mapred.job.tracker</name>
- <value>matraxa:9001</value>
- </property>
core-site.xml:
- <property>
- <name>fs.default.name</name>
- <value>hdfs://matraxa:9000</value>
- </property>
设置完成后,点击Finish就应用了该设置。然后,在最左边的Project Explorer中就能看到DFS的目录,如下图所示:
4、建立、运行hadoop程序
1、新建项目。
File-->New-->Other-->Map/Reduce Project
项目名可以随便取,如hadoopTest。
复制 hadoop安装目录/src/example/org/apache/hadoop/example/WordCount.java到刚才新建的项目下面。
2、上传模拟数据文件夹。
为了运行程序,需要一个输入的文件夹和输出的文件夹。输出文件夹,在程序运行完成后会自动生成。我们需要给程序一个输入文件夹。
(1)、在当前目录(如hadoop安装目录)下新建文件夹input,并在文件夹下新建两个文件file01、file02,这两个文件内容分别如下:
file01
- Hello World Bye World
file02
- Hello Hadoop Goodbye Hadoop
(2)、.将文件夹input上传到分布式文件系统中。
在已经启动Hadoop守护进程终端中cd 到hadoop安装目录,运行下面命令:
- bin/hadoop fs -put input input
这个命令将input文件夹上传到了hadoop文件系统了,在该系统下就多了一个input01文件夹,你可以使用下面命令查看:
3、运行项目。
(1)、在新建的项目hadoop-test,点击WordCount.java,右键-->Run As-->Run Configurations
(2)、在弹出的Run Configurations对话框中,点Java Application,右键-->New,这时会新建一个application名为WordCount
(3)、配置运行参数,点Arguments,在Program arguments中输入“你要传给程序的输入文件夹和你要求程序将计算结果保存的文件夹”,如:
这里面的input就是你刚传上去文件夹。文件夹地址你可以根据自己具体情况填写。如下图:
- hdfs://matraxa:9000/user/matraxa/input hdfs://matraxa:9000/user/matraxa/outpu
注意:虚拟机的启动参数"VM arguments"还是要填,不然会报堆不够的错误!具体见上图的填法
(4)、点击Run,运行程序。
点击Run,运行程序,过段时间将运行完成,等运行结束后,可以在终端中用命令如下,查看是否生成文件夹output:
bin/hadoop fs -ls
用下面命令查看生成的文件内容:
bin/hadoop fs -cat output01/*
如果显示如下,说明已经成功在eclipse下运行第一个MapReduce程序了。
- Bye 1
- Goodbye 1
- Hadoop 2
- Hello 2
- World 2
- hdfs://matraxa:9000/user/matraxa/input hdfs://matraxa:9000/user/matraxa/outpu