当前位置: 代码迷 >> Eclipse >> walter的hadoop学习札记四 配置hadoop的eclipse开发环境
  详细解决方案

walter的hadoop学习札记四 配置hadoop的eclipse开发环境

热度:37   发布时间:2016-04-23 01:31:30.0
walter的hadoop学习笔记四 配置hadoop的eclipse开发环境

?

开发环境

操作系统:ubuntu12.04?
hadoop版本:hadoop-1.0.4.tar.gz?
Eclipse版本:最新的eclipse,源安装的,我也没注意是哪个版本。

?

Ubuntu?12.04环境中编译Hadoop-eclipse-plugin-1.0.4.jar包。

1、在Eclipse中选择File-->Import-->Existing Projects into Workspace导入已有项目,假设路径为:

$HADOOP_HOME/src/contrib/eclipse-plugin,其默认的项目名称是MapReduceTools。导入后因为找不到hadoop-core.jar包,所以项目上有红色感叹号,不用管它【后面lib包加入后会消失】

?

2、默认项目名称为MapReduceTools,然后在项目MapReduceTools中新建lib目录,先将hadoop下的hadoop-core-1.0.4.jar重命名为hadoop.core.jar,并把hadoop.core.jar、及其lib目录下的commons-cli-1.2.jar、commons-lang-2.4.jar、commons-configuration-1.6.jar、jackson-mapper-asl-1.8.8.jar、jackson-core-asl-1.8.8.jar、commons-httpclient-3.0.1.jar拷贝到该目录。

?

3、将$HADOOP_HOME/src/contrib/build-contrib.xml(也就是与eclipse-plugin包在同一级目录)拷贝到eclipse项目目录中,并修改build-contrib.xml,将属性hadoop.root,eclipse.home换为本机电脑上的存放目录。并修改当前使用的hadoop版本号。eg:

?


? <property name="hadoop.root" location="/home/hadoop/Downloads/hadoop-1.0.4"/>
? <property name="eclipse.home" location="/home/hadoop/Downloads/eclipse" />

? <property name="version" value="1.0.4"/>


?


4、修改build.xml

? <target name="jar" depends="compile" unless="skip.contrib">
? ? <mkdir dir="${build.dir}/lib"/>
? ? <copy file="${hadoop.root}/hadoop-core-${version}.jar" tofile="${build.dir}/lib/hadoop-core.jar" verbose="true"/>
? ? <copy file="${hadoop.root}/lib/commons-cli-1.2.jar"? todir="${build.dir}/lib" verbose="true"/>
? ? <copy file="${hadoop.root}/lib/commons-lang-2.4.jar"? todir="${build.dir}/lib" verbose="true"/>
? ? <copy file="${hadoop.root}/lib/commons-configuration-1.6.jar"? todir="${build.dir}/lib" verbose="true"/>
? ? <copy file="${hadoop.root}/lib/jackson-mapper-asl-1.8.8.jar"? todir="${build.dir}/lib" verbose="true"/>
? ? <copy file="${hadoop.root}/lib/jackson-core-asl-1.8.8.jar"? todir="${build.dir}/lib" verbose="true"/>
? ? <copy file="${hadoop.root}/lib/commons-httpclient-3.0.1.jar"? todir="${build.dir}/lib" verbose="true"/>
? ? <jar
? ? ? jarfile="${build.dir}/hadoop-${name}-${version}.jar"
? ? ? manifest="${root}/META-INF/MANIFEST.MF">
? ? ? <fileset dir="${build.dir}" includes="classes/ lib/"/>
? ? ? <fileset dir="${root}" includes="resources/ plugin.xml"/>
? ? </jar>
? </target>

?


5、修改META-INF/MANIFEST.MF文件,添加lib目录下的jar包

? ? 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

?

6、右键选择项目-->Export,类型选择JAR file,把plugin.xml文件、classes目录、lib目录和resources目录选上,选择导出的jar目录,【导出时注意,要选择using exsiting manifest from workspace (也就是要选择刚配置上一步配置那个文件),而不要选择新创建manifest文件】,即可导出hadoop-eclipse-plugin-1.0.4.jar文件。此处我在导出时,hadoop-eclipse-plugin-1.0.4.jar中编译好的类文件并没有包含在classes目录中【其中并没有classes目录】,所以先创建一个classes目录,将已编译好的类文件剪切进classes目录。

?

7、经过以上几步,生成的hadoop-eclipse-plugin-1.0.4.jar包便可以使用了。

注:其它版本的编译办法也可以通过以上步骤实现。

以上转载http://www.linuxidc.com/Linux/2013-01/77921.htm

?

按照步骤做了没有成功,不知道是哪里错了,所以偷懒了,直接下载编译好的。可以从附件中下载编译好的插件。

?

?

新说明一下我的开发环境:?
为了学习方便这个例子在“伪分布式模式”Hadoop安装方式下开发。?

第一步,我们先启动Hadoop守护进程。?
如果读过之前的文章(Walter的hadoop学习笔记前三章)

?

应该比较清楚在“伪分布式模式”下启动Hadoop守护进程的方法,在这里就不多说了。?


第二步,在Eclipse下安装hadoop-plugin。?

1.复制上面生成的文件到eclipse/plugin目录下面,重启eclipse。


2.重启eclipse,配置hadoop installation directory。?
如果安装插件成功,打开Window-->Preferens,你会发现Hadoop Map/Reduce选项,在这个选项里你需要配置Hadoop installation directory。配置完成后退出。?

3.配置Map/Reduce Locations。?
在Window-->Show View中打开Map/Reduce Locations。?
在Map/Reduce Locations中新建一个Hadoop Location。在这个View中,右键-->New Hadoop Location。在弹出的对话框中你需要配置Location name,如walter,还有Map/Reduce Master和DFS Master。这里面的Host、Port分别为你在mapred-site.xml、core-site.xml中配置的地址及端口。如:?

Map/Reduce Master?

Java代码??收藏代码
  1. localhost??
  2. 9001??



DFS Master?

Java代码??收藏代码
  1. localhost??
  2. 9000??

?


配置完后退出。点击DFS Locations-->walter如果能显示HDFS中的内容,说明配置正确,如果显示"拒绝连接",请检查你的配置。?
?

第三步,新建项目。?
File-->New-->Other-->Map/Reduce Project?
项目名可以随便取,如hadoop-test。?
复制 hadoop安装目录/src/example/org/apache/hadoop/example/WordCount.java到刚才新建的项目下面。?

第四步,上传模拟数据文件夹。?
为了运行程序,我们需要一个输入的文件夹,和输出的文件夹。输出文件夹,在程序运行完成后会自动生成。我们需要给程序一个输入文件夹。?

1.在当前目录(如hadoop安装目录)下新建文件夹input,并在文件夹下新建两个文件file01、file02,这两个文件内容分别如下:?

file01?

Java代码??收藏代码
  1. Hello?World?Bye?World ??

file02?

Java代码??收藏代码
  1. Hello?Hadoop?Goodbye?Hadoop??



2.将文件夹input上传到分布式文件系统中。?

在已经启动Hadoop守护进程终端中cd 到hadoop安装目录,运行下面命令:?

Java代码??收藏代码
  1. hadoop?fs?-put?input?input


这个命令将input文件夹上传到了hadoop文件系统了,在该系统下就多了一个input文件夹,你可以使用下面命令查看:?

Java代码??收藏代码
  1. bin/hadoop?fs?-ls??



第五步,运行项目。?

1.在新建的项目hadoop-test,点击WordCount.java,右键-->Run As-->Run Configurations?
2.在弹出的Run Configurations对话框中,点Java Application,右键-->New,这时会新建一个application名为WordCount?
3.配置运行参数,点Arguments,在Program arguments中输入“你要传给程序的输入文件夹和你要求程序将计算结果保存的文件夹”,如:?

Java代码??收藏代码
  1. hdfs://localhost:9000/user/walter/input hdfs://localhost:9000/user/walter/output ?

或者用省略形式


Java代码?
?收藏代码
  1. input output ?

这里面的input就是你刚传上去文件夹。文件夹地址你可以根据自己具体情况填写。?

4.点击确定。?

?

5右键项目名,run on hadoop

点击Run,运行程序,过段时间将运行完成,等运行结束后,可以在终端中用命令:?

Java代码??收藏代码
  1. hadoop?fs?-ls??


查看是否生成文件夹output。?

用下面命令查看生成的文件内容:?

Java代码??收藏代码
  1. hadoop?fs?-cat?output/*??



如果显示如下,恭喜你一切顺利,你已经成功在eclipse下运行第一个MapReduce程序了。?

Java代码??收藏代码
  1. Bye?1??
  2. Goodbye?1??
  3. Hadoop??2??
  4. Hello???2??
  5. World???2??

?

?

  相关解决方案