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

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(eclipse,maven,hadoop)