记录一次编译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(CDH5.3.6)进行编译,以便在CentOS 6.5操作系统上构建和使用本地库。 Hadoop的native库是一组用C和C++编写的库...
本文将详细讲解如何在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的下载地址和提取码
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....
spark1.3.0在 hadoop2.5.0 cdh5.3.6下编译完的结果,由于文件过大,所以分为两部分上传,必须同时下载,原始的名称为: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
编译环境:centos 7 + hadoop-2.5.0-cdh5.3.6 +jdk1.7.0-79
在这个特定的“hadoop-2.5.0-cdh5.3.1centos6.4本地库”压缩包中,包含的是针对CentOS 6.4 64位系统优化的Hadoop本地库。这些本地库对于Hadoop在Linux环境下的高效运行至关重要,因为它们提供了与操作系统底层交互的...
《Hadoop 2.5.0-cdh5.3.6 源码解析与应用探索》 Hadoop,作为大数据处理领域的核心组件,一直以来都备受关注。本篇将深入探讨Hadoop 2.5.0-cdh5.3.6版本的源码,解析其设计理念、架构以及主要功能,旨在帮助读者...
spark+cdh+hadoop,在用CDH开发过程中,可能会出现缺少依赖包的情况,这个包可能会有用!
标题 "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环境下的源代码,这对于开发者、系统管理员和研究者来说非常有价值,因为它允许深入理解Hadoop内部的工作机制,定制自己的Hadoop实现,...
带编译所需的maven库,hadoop-2.6.0-cdh5.15.2在CentOS Linux release 7.3.1611重新编译的版本
标题 "native(hadoop-2.5.0-cdh5.2.0).tar" 提供的是一个针对Hadoop 2.5.0 CDH5.2.0版本的本地库文件集合,它已经过编译,可以用于在特定操作系统上支持Hadoop运行。CDH(Cloudera Distribution Including Apache ...
spark-assembly-1.6.0-cdh5.9.2-hadoop2.6.0-cdh5.9.2.jar
hadoop-cdh-4.5.0 eclipse plugin hadoop eclipse 插件 hadoop-eclipse-plugin-2.0.0-cdh4.5.0.jar
当与Hadoop 2.5.0-Eclipse插件结合时,它允许开发者在熟悉的Eclipse环境中编写、编译、运行和调试Hadoop作业。这样,开发者无需离开IDE就能完成对Hadoop作业的全部操作,提高了开发效率。 使用Hadoop 2.5.0-Eclipse...
在编写MapReduce程序时,Hadoop-2.5.0-eclipse插件提供了代码提示和自动完成功能,帮助你快速构建基于Java的Mapper和Reducer类。同时,它支持直接在Eclipse中查看日志,分析程序运行状态,这对于问题定位和性能优化...
hadoop-2.6.0-cdh5.14.0 源码 。
大数据/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