`
zhangxiong0301
  • 浏览: 359038 次
社区版块
存档分类
最新评论

hadoop2.5.0-cdh5.3.0编译并导入eclipse java工程

阅读更多

记录一次编译hadoop2.5的源码并导入eclipse java 工程,采用的是cdh5.3.0版本的hadoop,操作环境是ubuntu14.10。具体步骤如下:

 

一、准备环境

编译hadoop需要很多依赖环境,这可以在下载下来的hadoop文件夹下的src目录下察看BUILDING.txt文件里看到。该文件不但列出了依赖的工具和库,还有简单的编译步骤说明。在装完这些依赖环境后,别忘了重启系统。

 

1. protocol buffer 2.5.0:这个是google的序列化工具,由于google关闭中国市场,自然protocolbuf也就没法在google的官网上下载,可以自行baidu,我是在csdn上下载到的。之后就是安装了:

./configure 
make 
make install
sudo apt-get install protoc(如果在上述步骤完成后命令行不识别protoc命令)

 

2.cmake

sudo apt-get install cmake

 

3.zlib
下载地址:http://www.zlib.net/。直接官网下载就行

 

./configure 
make 
make install

 

4.openssl & openssl-dev
需要注意的是openssl和openssl-dev并没有一起发布,需要分别安装,openssl 下载地址:http://www.openssl.org/source/。直接官网下载。

 

./config
make 
make install

 

至于openssl-dev,即一些供开发者用的openssl头文件和库等,在ubuntu下可以直接安装:

 

 sudo apt-get install libssl-dev

 

 5.findbugs

这是一个用来找bug的工具,好像是直接分析java的字节码分析代码缺陷。其下载地址:http://sourceforge.jp/projects/sfnet_findbugs/downloads/findbugs/3.0.0/findbugs-3.0.0.tar.gz/
 安装步骤如下(注意把相关bin及findbugs_home加入系统环境变量):

 

tar zxvf findbugs-3.0.0.tar.gz  
vim /etc/profile  
export FINDBUGS_HOME=/home/zx/software/findbugs-3.0.0  
export PATH=$PATH:$FINDBUGS_HOME/bin

 


二、编译代码

  这步相对比较简单,执行命令即可,可以参考董西成的<<Hadoop技术内幕:深入解析YARN架构设计与实 现原理>>,此书第一章已经很详细了。如果上述环境安装好后,只需要执行如下命令即可:

 

   cd ${HADOOP_HOME}/src
mvn package -Pdist,native,docs -DskipTests -D tar

编译过程中可能会报错,基本上都是依赖的环境没装好,导致各种maven 插件及其依赖出问题。拿着错误信息baidu,一般都能解决。

 

三、导入到eclipse工程

导入eclipse工程分两步:1)生成eclipse工程,2)导入eclipse工程。

 

1、生成eclipse工程

执行以下命令即可

 

cd ${HADOOP_HOME}/src
mvn org.apache.maven.plugins:maven-eclipse-plugin:2.6:eclipse -DskipTests

 

注意:如果按照官网上说的执行mvn eclipse:eclipse -DskipTests,则会报错,查了资料说大概是默认用了2.8版本的maven-eclipse-plugin,而这里好像会有bug啥的。若是2.8版本的maven-eclipse-plugin,则报错信息如下:

 

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-eclipse-plugin:2.8
:eclipse (default-cli) on project hadoop-common: Request to merge when 'filtering' 
is not identical. Original=resource src/main/resources: output=target/classes, 
include=[], exclude=[common-version-info.properties|**/*.java], test=false, 
filtering=false, merging with=resource src/main/resources: output=target/classes, 
include=[common-version-info.properties], exclude=[**/*.java], test=false, 
filtering=true -> [Help 1]

 
2)导入eclipse工程

顺便提一下,在ubuntu下让eclipse锁定到launcher里会很方便,顺便说下让eclipse显示在launcher或桌面的方法。

 

1.vim /usr/share/applications/eclipse.desktop
add the following line in the txt:
[Desktop Entry]
Encoding=UTF-8
Name=eclipse
Comment=EclipseIDE
Exec=/home/zx/software/eclipse/eclipse
Icon=/home/zx/software/eclipse/icon.xpm
Terminal=false
StartupNotify=true
Type=Application
Categories=Application;Development;

2. chmod 777 /usr/share/applications/eclipse.desktop

3. search the application with 'eclipse' in the dashbord, and drag the icon in the launcher.

 

 接着回归正题:导入eclipse 工程: import->general->Existing project into workspace.导入后就是三四十个java工程,然后就是修改错误,以下摘录网上,也是碰到并亲测过的 :


 1)hadoop-streaming中build path错误->Java Build Path->Source:

    删除...hadoop-yarn-server-resourcemanager/conf
    Link Source:源码根目录/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/conf,再随便起个名字;inclusion patterns:capacity-scheduler.xml;exclusion patters:**/*.java

 

2) org.apache.hadoop.io.serializer.avro.TestAvroSerialization

    下载avro-tools-1.7.4.jar:http://archive.apache.org/dist/avro/avro-1.7.4/java/
    进入目录:源码根目录\hadoop-common-project\hadoop-common\src\test\avro
    java -jar path/to/avro-tools-1.7.4.jar compile schema avroRecord.avsc ..\java
    eclipse 刷新

 

3) org.apache.hadoop.ipc.protobuf.TestProtos

    进入目录:源码根目录\hadoop-common-project\hadoop-common\src\test\proto
    protoc --java_out=../java *.proto
    eclipse 刷新

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    hadoop-2.5.0-cdh5.3.6 编译native包

    标题提到的“hadoop-2.5.0-cdh5.3.6 编译native包”正是这个过程的实践,它涉及到对特定版本的Hadoop(CDH5.3.6)进行编译,以便在CentOS 6.5操作系统上构建和使用本地库。 Hadoop的native库是一组用C和C++编写的库...

    编译hadoop-2.5.0-cdh5.3.6 + snappy 源码的native包

    本文将详细讲解如何在CentOS 6.5系统上编译Hadoop 2.5.0 - CDH5.3.6与Snappy的源码,以生成适用于该环境的native库。 首先,我们要了解Hadoop的native库是什么。Hadoop的native库是一组C++编译的库,它们提供了与...

    spark-assembly-1.3.0-hadoop2.5.0-cdh5.3.0.jar的下载地址和提取码

    spark-assembly-1.3.0-hadoop2.5.0-cdh5.3.0.jar的下载地址和提取码

    hadoop-2.5.0-cdh5.3.6-src.rar

    hadoop-2.5.0-cdh5.3.6-src.rarhadoop-2.5.0-cdh5.3.6-src.rarhadoop-2.5.0-cdh5.3.6-src.rarhadoop-2.5.0-cdh5.3.6-src.rarhadoop-2.5.0-cdh5.3.6-src.rarhadoop-2.5.0-cdh5.3.6-src.rarhadoop-2.5.0-cdh5.3.6-src....

    spark-1.3.0-bin-2.5.0-cdh5.3.6 .tgz 第一部分

    spark1.3.0在 hadoop2.5.0 cdh5.3.6下编译完的结果,由于文件过大,所以分为两部分上传,必须同时下载,原始的名称为:spark-1.3.0-bin-2.5.0-cdh5.3.6 .tgz

    spark-1.3.0-bin-2.5.0-cdh5.3.6 .tgz 第二部分

    spark1.3.0在 hadoop2.5.0 cdh5.3.6下编译完的结果,由于文件过大,所以分为两部分上传,必须同时下载,原始的名称为:spark-1.3.0-bin-2.5.0-cdh5.3.6 .tgz

    hadoop-2.5.0-cdh5.3.6的native包-含snappy

    编译环境:centos 7 + hadoop-2.5.0-cdh5.3.6 +jdk1.7.0-79

    hadoop-2.5.0-cdh5.3.1centos6.4本地库

    在这个特定的“hadoop-2.5.0-cdh5.3.1centos6.4本地库”压缩包中,包含的是针对CentOS 6.4 64位系统优化的Hadoop本地库。这些本地库对于Hadoop在Linux环境下的高效运行至关重要,因为它们提供了与操作系统底层交互的...

    hadoop-2.5.0-cdh5.3.6-src.tar.gz

    《Hadoop 2.5.0-cdh5.3.6 源码解析与应用探索》 Hadoop,作为大数据处理领域的核心组件,一直以来都备受关注。本篇将深入探讨Hadoop 2.5.0-cdh5.3.6版本的源码,解析其设计理念、架构以及主要功能,旨在帮助读者...

    spark-assembly-1.2.0-cdh5.3.4-hadoop2.5.0-cdh5.3.4

    spark+cdh+hadoop,在用CDH开发过程中,可能会出现缺少依赖包的情况,这个包可能会有用!

    native(hadoop-2.5.0-cdh5.3.2

    标题 "native(hadoop-2.5.0-cdh5.3.2" 指向的是Hadoop的一个特定版本——2.5.0-cdh5.3.2,其中包含了本地库(Native Libraries)的组件。这个版本是Cloudera Distribution Including Apache Hadoop(CDH)的一个发行...

    hadoop-2.5.0-cdh5.3.1-src.tar.gz

    `hadoop-2.5.0-cdh5.3.1-src.tar.gz`这个压缩包包含了Hadoop 2.5.0在CDH5.3.1环境下的源代码,这对于开发者、系统管理员和研究者来说非常有价值,因为它允许深入理解Hadoop内部的工作机制,定制自己的Hadoop实现,...

    hadoop-2.6.0-cdh5.15.2编译版本(CentOS 7.3)

    带编译所需的maven库,hadoop-2.6.0-cdh5.15.2在CentOS Linux release 7.3.1611重新编译的版本

    native(hadoop-2.5.0-cdh5.2.0).tar

    标题 "native(hadoop-2.5.0-cdh5.2.0).tar" 提供的是一个针对Hadoop 2.5.0 CDH5.2.0版本的本地库文件集合,它已经过编译,可以用于在特定操作系统上支持Hadoop运行。CDH(Cloudera Distribution Including Apache ...

    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

    hadoop2.5.0-eclipse插件

    当与Hadoop 2.5.0-Eclipse插件结合时,它允许开发者在熟悉的Eclipse环境中编写、编译、运行和调试Hadoop作业。这样,开发者无需离开IDE就能完成对Hadoop作业的全部操作,提高了开发效率。 使用Hadoop 2.5.0-Eclipse...

    hadoop-2.5.0-eclipse插件

    在编写MapReduce程序时,Hadoop-2.5.0-eclipse插件提供了代码提示和自动完成功能,帮助你快速构建基于Java的Mapper和Reducer类。同时,它支持直接在Eclipse中查看日志,分析程序运行状态,这对于问题定位和性能优化...

    hadoop2.6.0-cdh5.14.0 源码

    hadoop-2.6.0-cdh5.14.0 源码 。

    hadoop-2.6.0-cdh5.15.1.tar.gz

    大数据/Linux安装包-hadoop-2.6.0-cdh5.15.1.tar.gz 大数据/Linux安装包-hadoop-2.6.0-cdh5.15.1.tar.gz 大数据/Linux安装包-hadoop-2.6.0-cdh5.15.1.tar.gz

    hadoop-2.6.0.tar.gz&hadoop-2.6.0-cdh5.16.2.tar.gz

    而hadoop-2.6.0-cdh5.16.2.tar.gz则是Cloudera公司推出的基于Hadoop 2.6.0的CDH(Cloudera Distribution Including Apache Hadoop)版本。CDH是业界广泛采用的企业级Hadoop发行版,它不仅集成了Hadoop的核心组件,还...

Global site tag (gtag.js) - Google Analytics