(三)配置Hadoop1.2.1+eclipse(Juno版)开发环境,并运行WordCount程序

配置Hadoop1.2.1+eclipse(Juno)开发环境,并运行WordCount程序

一、   需求部分

在ubuntu上用Eclipse IDE进行hadoop相关的开发,需要在Eclipse上安装hadoop的开发插件。最新释放出的hadoop包含源码的包,以 hadoop-1.X为例,包含相关的eclipse插件的源码,因此可以针对自己的eclipse版本来编译一个合适hadoop的eclipse插件。下面将详细介绍插件的编译安装过程,以及在Eclipse上配置hadoop开发插件的过程。

二、   环境

  1. VMware® Workstation 10.04
  2. Ubuntu14.04 32位
  3. Java JDK 1.6.0
  4. Hadoop1.2.1
  5. Eclipse: Juno Service Release 2 Version

三、       编译hadoop1.2.1Eclipse-Juno插件

1)        安装ant

 sudo apt-get install ant

2)        修改编译配置文件

l  在hadoop解压目录下,找到src\contrib\eclipse-plugin\build.xml,修改以下几行:

<path id="hadoop-core-jar">

    <fileset dir="${hadoop.root}/">

        <include name="hadoop*.jar"/>

    </fileset>

  </path>

 

  <!-- Override classpath to include Eclipse SDK jars -->

  <path id="classpath">

    <pathelement location="${build.classes}"/>

    <pathelement location="${hadoop.root}/build/classes"/>

    <path refid="eclipse-sdk-jars"/>

    <path refid="hadoop-core-jar"/>

  </path>

......

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

l  找到src\contrib\build-contrib.xml,添加以下几行:

  <property name="version" value="1.2.1"/>
  <property name="ivy.version" value="2.1.0"/>
  <property name="eclipse.home" location="..."/>

 eclipse的路径请换成你主机上的eclipse存放路径。

3)   然后,打开命令行,进入目录\src\contrib\eclipse-plugin,输入ant编译,如果一切正常就编译通过了。

最后可以在{hadoophome}\build\contrib\eclipse-plugin路径下找到编译好的插件。

4)   几个注意点:

l  一定要在网络环境下进行,如果需要设置上网代理,可以在src\contrib\build-contrib.xml中添加如下几行:

<target name="proxy" >
    <property name="proxy.host" value=""/>
    <property name="proxy.port" value="80"/>
    <property name="proxy.user" value=""/>
    <property name="proxy.pass" value=""/>
    <setproxy proxyhost="${proxy.host}" proxyport="${proxy.port}"
      proxyuser="${proxy.user}" proxypassword="${proxy.pass}"/>
</target>

在xml文件中的ivy相关文件的下载任务中,添加以上代理任务的依赖,配置为:

<target name="ivy-download" depends="proxy" description="To download ivy " unless="offline">
    <get src="${ivy_repo_url}" dest="${ivy.jar}" usetimestamp="true"/>
  </target>

l  如果出现编译提示类的版本不匹配的问题,请确认你的java版本大于1.6。

四、       配置hadoop1.2.1Eclipse开发环境

得到的hadoop1.2.1-Eclipse开发插件(jar包)后,将它放置在eclipse/plugins目录下,并重启eclipse即可。这里要注意一点,有时候eclipse会出现加载插件失败的情况,如果出现,就用eclipse -clean命令启动,启动后在Eclipse的右上角应该出现了一只蓝色的大象logo。

五、    运行WordCount程序

启动Eclipse后,File->New->Project.如果出现Map/Reduce Project选项,选择后next,输入Project name完成后,说明插件安装成功了。如果出现了Map/Reduce Project选项,但是next后提示错误,说明你使用的插件不可行。

 

下面在window->preferences选项里配置hadoop目录

然后启动hadoop,点击eclipse下方选项黄色小象,在下方空白处右键,New hadoop location..

上面左方的Map/Reduce Master设置Host和Port对应的是你hadoop安装目录下conf下mapred-site.xml文件设置的host和port,右边的DFS Master对应的是core-site.xml。设置好后finish,然后就能在eclipse里面浏览并操作HDFS了。


下面我们试着运行一个wordcount算法。

在刚才建的map/reduce project下的src文件夹上右键,New->class


然后把hadoop安装目录下的src/examples/org/apache/hadoop/examples内的WordCount.java内的代码copy到工程中的WordCount.java里。

 

注释第一行。保存。

在ubuntu的Documents下新建文件input,并输入内容:

my name is sun bin bin,what is your name?

然后将input文件上传到HDFS中:

bin/hadoop fs -put /home/binbin/Documents/input .  //注意最后面的.

文件就上传到HDFS了,刷新eclipse中的myhdoop下的目录就可以看到


然后开始运行。在建立的WordCount.java上面右键,Run as->run configurations

左边的java application右键New

arguments设置参数:

要确保HDFS中不存在output目录,否则会抛出异常。点击Run on Hadoop.

运行结束后,在左方的DFS Locations/myhadoop里面就能看输出结果了(要右键刷新),或者在终端通过命令行查看。


因为本wordcount算法只对空格做间隔符号,所以会出现bin,what计为一个单词的情况。

 

参考:

http://www.cnblogs.com/alex-blog/p/3160619.html

http://blog.sina.com.cn/s/blog_7deb436e0101kh0d.html

posted @ 2015-01-21 21:30  CherishFu  阅读(434)  评论(0编辑  收藏  举报