`
lt200819
  • 浏览: 180617 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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  

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics