记录一次编译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 刷新
相关推荐
2024-2030全球及中国PCB接触式探头行业研究及十五五规划分析报告
网站界面设计mortal0418代码
PHP毕业设计-校园失物招领系统源码+数据库.zip个人经导师指导并认可通过的高分毕业设计项目,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者。也可作为课程设计、期末大作业。包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! PHP毕业设计-校园失物招领系统源码+数据库.zip个人经导师指导并认可通过的高分毕业设计项目,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者。也可作为课程设计、期末大作业。包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! PHP毕业设计-校园失物招领系统源码+数据库.zip个人经导师指导并认可通过的高分毕业设计项目,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者。也可作为课程设计、期末大作业。包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! PHP毕业设计-校园失物招领系统源码+数据库.zip个人经导师指导并认可通过的高分毕业设计项目,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者。也可
2024年神经酸行业分析报告.pptx
【Java爬虫】信息抓取的实现 完整实例(源码)
rain-drop.PNG
FEDformer.pdf
基于ASP.NET三层模式的网上学习资源交流系统:毕业源码案例设计.rar基于ASP.NET三层模式的网上学习资源交流系统:毕业源码案例设计.rar基于ASP.NET三层模式的网上学习资源交流系统:毕业源码案例设计.rar基于ASP.NET三层模式的网上学习资源交流系统:毕业源码案例设计.rar基于ASP.NET三层模式的网上学习资源交流系统:毕业源码案例设计.rar基于ASP.NET三层模式的网上学习资源交流系统:毕业源码案例设计.rar基于ASP.NET三层模式的网上学习资源交流系统:毕业源码案例设计.rar基于ASP.NET三层模式的网上学习资源交流系统:毕业源码案例设计.rar基于ASP.NET三层模式的网上学习资源交流系统:毕业源码案例设计.rar基于ASP.NET三层模式的网上学习资源交流系统:毕业源码案例设计.rar基于ASP.NET三层模式的网上学习资源交流系统:毕业源码案例设计.rar基于ASP.NET三层模式的网上学习资源交流系统:毕业源码案例设计.rar基于ASP.NET三层模式的网上学习资源交流系统:毕业源码案例设计.rar基于ASP.NET三层模式的网上学习资
完整代码!扫雷游戏,vs2010使用vs2010开发小游戏,这是一个扫雷的游戏,适应于大作业和毕业论文.zip
JDK 8 0 apidoc 带完整索引和目录
可以进行模拟银行服务,有多种功能。
校园共享单车管理系统 软件工程做的课程设计,里面是JSP源码,后台连接数据库,可直接调试运行成功。
去水印版,aspose.words-19.7-jdk17.jar、aspose-words-19.7.pom
NKUcs22级机器学习实验全套代码于此,希望造福学弟学妹。
springboot校园医疗保险管理系统
QPSK的锁相环程序,在MATLAB环境下编写的,用来进行QPSK通信系统的仿真和实际信号载波同步的提取
stm32项目知识领域: 网络安全 技术关键词: 漏洞分析、渗透测试、加密算法 内容关键词: 攻击防范、身份验证、网络流量分析 用途: 学习保护信息系统免受恶意攻击和数据泄露 资源描述: "OWASP官方网站"提供了全面的网络安全知识和工具,包括常见漏洞、安全指南和最佳实践。
springboot时间管理系统 系统实现了首页,个人中心,系统公告管理,用户管理,时间分类管理,事件数据管理,目标数据管理,用户日记管理等功能。 项目关键技术 开发工具:IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7+ 框架:ssm、Springboot 前端:Vue、ElementUI 关键技术:springboot、SSM、vue、MYSQL、MAVEN 数据库工具:Navicat、SQLyog
SNR,SNDR,THD,ENOB,SFDR的matlab计算程序 matla
springboot商品推荐系统 项目关键技术 开发工具:IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7+ 框架:ssm、Springboot 前端:Vue、ElementUI 关键技术:springboot、SSM、vue、MYSQL、MAVEN 数据库工具:Navicat、SQLyog