`
cxshun
  • 浏览: 724088 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

hadoop eclipse插件编译小记

 
阅读更多

        大数据是当今的一个热门话题,相信搞JAVA的我们当然不能错过了,尤其是hadoop这个大数据时代的宠儿是属于我们JAVA界的(核心是用JAVA写的)。

        看到hadoop,相信一堆概念大家都听得不少了,什么MapReduce,这个就大概解释下:

        Map:俗点说就是直接把数据打散,一份数据把它切分成多份小的数据进行处理,这个过程可以称之为Map。

        Reduce:有打散当然要有聚合,把处理完的数据再重新合成一个,这个过程称之为Reduce。

        这两个操作实际上就是hadoop的核心。

     

        hadoop可以不用eclipse插件也可以运行,但当然,对于我们初学的,有个插件肯定好很多,我们可以集中精力先让它跑起来,然后再慢慢去深入研究。

 

        hadoop貌似在0.20.0之后就不再提供eclipse插件的编译包了,而是直接提供一堆源码,具体原因就不清楚是啥了。但可能是考虑到eclipse版本的问题吧,各个开发者的偏好不一样,用的版本都不一样,与其自己编译不如给开发者,这样会更好。

        但给了一堆源码给我们,对我们这些不怎么熟ant的人就是个难题了。我就在编译的时候遇到了一堆问题了,杯具得很。但好在GOOGLE大神在,在很多博客文章的帮助下,总算解决了那些问题(在这里感谢那些文章的作者,恕我不能一一列举)。

 

        废话不多说了,直接来看看步骤:

        (以上步骤都假设你有hadoop代码,下载的包里面有带源码的,如果还没下载的,可以到这里下载,http://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/,注意不要下载bin的那个,那个不带源代码。我这里用到的hadoop版本是1.1.2,但此插件的编译方面在1.2.0下也通过。)

        1)hadoop的eclipse插件源码位于hadoop.home(这里的hadoop.home为你的hadoop主目录)/src/contrib/eclipse-plugin。

        ant不外乎是一个build.xml,我们先拿它开刀。

        我们找到<target name="jar",里面的元素<copy相关的先全部删了,然后添加如下的,当然,这里的hadoop-core-XXX.jar,这个XXX是版本号,请根据你下载的hadoop的版本进行设置,也可以在后面的build-contrib.xml中进行设置,这里用变量进行替换,等一下我们再看。

<copy file="${hadoop.root}/hadoop-core-1.1.2.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-configuration-1.6.jar" tofile="${build.dir}/lib/commons-configuration-1.6.jar" verbose="true"/>
    <copy file="${hadoop.root}/lib/commons-httpclient-3.0.1.jar" tofile="${build.dir}/lib/commons-httpclient-3.0.1.jar" verbose="true"/>
    <copy file="${hadoop.root}/lib/commons-lang-2.4.jar" tofile="${build.dir}/lib/commons-lang-2.4.jar" verbose="true"/>
    <copy file="${hadoop.root}/lib/jackson-core-asl-1.8.8.jar" tofile="${build.dir}/lib/jackson-core-asl-1.8.8.jar" verbose="true"/>
    <copy file="${hadoop.root}/lib/jackson-mapper-asl-1.8.8.jar" tofile="${build.dir}/lib/jackson-mapper-asl-1.8.8.jar" verbose="true"/>

         

        网上很多文章都说只要这一步就OK了,但实验证明,我们编译的时候会出现找不到类的情况,主要是没有加载那些JAR包。

        2)添加JAR包到classpath

        还是build.xml文件中,我们找到<path id="classpath">

        在其末尾加上:

<fileset dir="${hadoop.root}">  
       <include name="*.jar"/>  
</fileset> 

         这里把hadoop根目录下的所有JAR包加入到classpath,至于这里为什么要加,我没怎么用Ant,就留给有兴趣的朋友去研究了。

        3)改完上面的,当我们在编译的时候,那些需要的JAR包并没有同时添加到生成的JAR内,这样会有错误,所以我们要修改MANIFIEST.MF文件,相信搞过可运行JAR包的朋友都清楚这个文件用一个JAR来说是多么的重要。

        在同级目录下找到META-INF/MANIFEST.MF,找到Bundle-ClassPath:,然后添加如下:

classes/,lib/hadoop-core.jar,lib/commons-configuration-1.6.jar,lib/commons-httpclient-3.0.1.jar,lib/commons-lang-2.4.jar,lib/jackson-core-asl-1.8.8.jar,lib/commons-cli-1.2.jar

        注意,这一大段不要换行,否则在生成JAR包时会报错。

        4)加完这些,可以说实际上编译就已经OK了,但我们需要跟特定的eclipse相结合,所以我们需要配置eclipse的路径,回到我们刚才build.xml文件的上层文件夹,也就是hadoop.home/src/contrib文件夹下。

        找到build-contrib.xml文件,找到project,在property最前面加多一个:

<property name="eclipse.home" value="D:/developerTools/eclipse/eclipse" />

         这里的D:/xxx是我的eclipse安装路径,注意,需要把原来windows下的\换成linux样式的/,否则会有问题的。

        

        接下来就开始我们正式的编译工作了,假设ant那些我们都配置好了,已经在path中了,并且ant版本高于1.7.2(建议下最新的),然后我们直接在cmd下执行:

        可以看到这样的结果: 

        这里已经生成成功了,接下来我们就可以到hadoop.home/build/contrib/eclipse-plugin下找到hadoop-eclipse-plugin-${version}.jar这样的一个文件,${version}是什么来的?

          

          这里就涉及到一个前面说的版本变量的问题,我们在build-contrib.xml的eclipse.home下面添加一个:

<property name="version" value="1.1.2" />

         这里的版本号请根据你自己下的版本来填,填好后,我们再生成后,就可以看到hadoop-eclipse-plugin-1.1.2.jar这样的一个JAR包,这个版本号根据你设的version值来生成的。

 

         我在另外一台电脑编译时,遇到了报找不到log4j配置文件的错误,类似什么master之类的,如果遇到类似这样的错误,错误如下:


 

         可以尝试修改ivy.xml,把里面的dependency里面的conf里面的master修改为default,一般就可以解决了,这个暂时没发现是什么造成的,遇到类似的问题就可以找找ivy.xml里面的问题。

 

         编译完成后,我们把hadoop-eclipse-plugin-XXX.jar包丢进eclipse的plugins目录下,然后重启eclipse就OK了,启动后就可以看到Map/Reduce窗口了,这也方便我们运行WordCount等例子。

  • 大小: 28.4 KB
  • 大小: 8.3 KB
0
1
分享到:
评论

相关推荐

    hadoop eclipse 插件2.6.0

    hadoop eclipse 插件2.6.0 开发hadoop必备的插件 值得下载

    hadoop eclipse插件

    Hadoop Eclipse插件是开发Hadoop MapReduce程序的重要工具,它允许开发者在本地Eclipse集成开发环境中直接编写、测试和调试Hadoop作业,极大地提高了开发效率。以下是对这个插件的详细说明: 首先,安装Hadoop ...

    hadoop-eclipse插件各版本合集

    Hadoop-Eclipse插件是Apache Hadoop项目与Eclipse IDE集成的一个重要工具,它使得Hadoop开发者能够在Eclipse环境中直接创建、编辑、调试和管理Hadoop MapReduce作业,极大地提升了开发效率。本合集包含了多个版本的...

    eclipse hadoop2 插件

    Eclipse Hadoop2 插件是为开发人员提供的一种强大工具,它允许用户在Eclipse集成开发环境中(IDE)直接编写、调试和管理Hadoop项目。这个插件针对Hadoop 2.x版本进行了优化,提供了丰富的功能来简化Hadoop应用程序的...

    hadoop eclipse插件 cdh3版本

    hadoop eclipse插件 cdh3版本

    Hadoop Eclipse插件2.2.0版本

    hadoop Eclipse插件Linux版本,编译环境hadoop2.2.0

    hadoop2.7.7 Eclipse 插件,自己编译,使用有效

    hadoop版本2.7.7 Eclipse 版本4.5.1,dfs location插件,自己编译成功,使用有效,将该jar包放到eclipse的plugins目录下

    eclipse安装Hadoop插件

    ### Eclipse安装Hadoop插件详解 #### 一、前言 随着大数据技术的快速发展,Hadoop作为处理海量数据的重要工具之一,其应用越来越广泛。为了更好地利用Eclipse进行Hadoop程序开发,安装Hadoop Eclipse插件是十分...

    hadoop2.2 eclipse插件编译

    标题中的“hadoop2.2 eclipse插件编译”意味着我们要讨论的是如何在Eclipse中编译适用于Hadoop 2.2版本的插件。这个过程通常涉及到下载源代码、配置构建环境以及执行编译命令。 描述中提到的“hadoop 2.x插件编译所...

    编译hadoop eclipse插件文档

    【编译Hadoop Eclipse插件】是开发Hadoop应用程序的重要步骤,它允许开发者在Eclipse环境中直接编写、调试和管理Hadoop项目。本教程将详细解释如何编译和安装Hadoop Eclipse插件。 首先,确保你已经安装了**Java 8*...

    hadoop_eclipse插件

    Hadoop Eclipse插件是开发Hadoop MapReduce程序的重要工具,它允许开发者在Eclipse集成开发环境中直接创建、编辑、运行和调试Hadoop作业。通过这个插件,程序员可以方便地将Java应用程序部署到Hadoop集群上,极大地...

    Hadoop开发环境的插件hadoop-eclipse-plugin-2.10.1

    Hadoop Eclipse是Hadoop开发环境的插件,用户在创建Hadoop程序时,Eclipse插件会自动导入Hadoop编程接口的jar文件,这样用户就可以在Eclipse插件的图形界面中进行编码、调试和运行Hadop程序,也能通过Eclipse插件...

    hadoop-eclipse-plugin1.2.1 and hadoop-eclipse-plugin2.8.0

    《Hadoop Eclipse Plugin:开发利器的进化》 在大数据领域,Hadoop作为开源分布式计算框架,扮演着核心角色。为了方便开发者在Eclipse或MyEclipse这样的集成开发环境中高效地进行Hadoop应用开发,Hadoop-Eclipse-...

    hadoop-eclipse-插件编译方法

    ### Hadoop Eclipse 插件编译方法详解 #### 一、引言 Hadoop作为大数据处理领域的核心工具之一,其与开发环境的整合至关重要。Eclipse作为常用的集成开发环境(IDE),通过安装特定的插件可以极大地提升Hadoop项目的...

    hadoop1.0.4 eclipse插件及编译方法

    标题"hadop1.0.4 eclipse插件及编译方法"所提及的是如何在Eclipse中安装和使用Hadoop 1.0.4版本的插件,以及如何编译Hadoop项目。在这个过程中,开发者通常会遇到以下几个关键知识点: 1. **Hadoop Eclipse插件安装...

    hadoop eclipse 插件 2.0.1 alpha

    hadoop eclipse 插件 2.0.1 alpha hadoop eclipse plugin 插件 2.0.1 使用环境: eclispe-juno ubuntu 10.04 LTS 其他环境欢迎大家测试一下。

    hadoop-cdh-4.5.0 eclipse plugin hadoop eclipse 插件

    hadoop-cdh-4.5.0 eclipse plugin hadoop eclipse 插件 hadoop-eclipse-plugin-2.0.0-cdh4.5.0.jar

    Hadoop-eclipse插件

    Hadoop-eclipse插件是专为Java开发人员设计的一个实用工具,它允许用户在Eclipse集成开发环境中直接创建、编辑和运行Hadoop MapReduce项目。这个插件简化了Hadoop开发流程,使得开发者无需离开Eclipse就可以进行...

    hadoop2.2.0的eclipse插件

    自己编译的hadoop-eclipse-plugin-2.2.0.jar插件:hadoop版本hadoop-2.2.0、eclipse版本:Eclipse Standard 4.3.1

    hadoop2.7.3 eclipse插件

    首先,Hadoop Eclipse插件是一个强大的工具,它允许开发者直接在Eclipse环境中创建、编辑和管理Hadoop MapReduce项目。这个插件提供了图形化的JobTracker和TaskTracker视图,使用户可以实时监控作业的执行状态,极大...

Global site tag (gtag.js) - Google Analytics