内容简介:Ubuntu 16.04下将Hadoop2.7.3源代码导入到Eclipse Neon中
0.为什么会有这篇:
这篇文章的目的在于帮助想学习Hadoop源码的内容,却在导入的过程中出现了各种问题的人。或许你一定找了很多博客都无果,那么不用担心,我和你一样,这也是这篇文章存在的意义,废话少说,进入正题。
导入的主要过程如下:
1.下载源代码:
首先,登录hadoop的官网( http://hadoop.apache.org/ ),寻找源码包。
下载地址: http://hadoop.apache.org/releases.html
2.解压并打开BUIDING.txt:
tar -xvf hadoop-2.7.3-src.tar.gz cd hadoop-2.7.3-src vim BUILDING.txt
有如下两段:
第一段:
Installing required packages for clean install of Ubuntu 14.04 LTS Desktop: * Oracle JDK 1.7 (preferred) $ sudo apt-get purge openjdk* $ sudo apt-get install software-properties-common $ sudo add-apt-repository ppa:webupd8team/java $ sudo apt-get update $ sudo apt-get install oracle-java7-installer * Maven $ sudo apt-get -y install maven * Native libraries $ sudo apt-get -y install build-essential autoconf automake libtool cmake zlib1g-dev pkg-config libssl-dev * ProtocolBuffer 2.5.0 (required) $ sudo apt-get -y install libprotobuf-dev protobuf-compiler
第二段:
Importing projects to eclipse When you import the project to eclipse, install hadoop-maven-plugins at first. $ cd hadoop-maven-plugins $ mvn install Then, generate eclipse project files. $ mvn eclipse:eclipse -DskipTests At last, import to eclipse by specifying the root directory of the project via [File] > [Import] > [Existing Projects into Workspace].
综合这两段内容,如果是在14.04或许可以成功,但是实际在16.0的版本出现了问题
3.解决BUIDING.txt里的问题:
主要问题有两个:
一个坑是jdk的问题:
$ sudo add-apt-repository ppa:webupd8team/java $ sudo apt-get update $ sudo apt-get install oracle-java7-installer
如上的过程是为了安装jdk7,实际执行的过程会因为无法FQ,导致秘钥无法下载。
替代的方法:从oracle官网下载
从命令行里提示的结果可以看到:
这个jdk的版本号是jdk-7u80
下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
Oracle的官网,这个只能自己下载,下载前必须接受协议。
当然为了方便我会将这个导入过程所有用到的包全部放进百度云里。链接附在本文的最后了。
下面怎么做就很简单了,我想对于一个要看hadoop源码的人,装个jdk,配置个环境变量应该是没问题的吧。
这个第二个坑就是ProtocolBuffer的版本问题:
这个坑尤其大,导致我编译了一半,才发现问题,这个系统默认为我装上了2.6.1,醉了。。。。。。
替代方案:
从官网下载ProtocolBuffer2.5.0来编译安装
如果你和我一样也被自动安装上了2.6.1,那就只好卸载了,命令如下:
sudo apt-get purge libprotobuf-dev protobuf-compiler
然后我们下载官网的protoc2.5.0:
下载地址:
https://github.com/google/protobuf/releases/download/v2.5.0/protobuf-2.5.0.tar.gz
安装过程:
下载地址: https://code.google.com/p/protobuf/downloads/list
我下载的是protobuf-2.5.0.tar.gz
解压:
$ tar -xzvf protobuf-2.5.0.tar.gz
编译:
$ cd protobuf-2.5.0
$ ./configure
$ make
$ make check
安装:
$ make install
查看是否安装成功
$ protoc --version
libprotoc 2.5.0
使用:
$ protoc -I=输入.proto文件所在的文件夹 --java_out=输出 Java 文件的路径 .proto文件
例如:
protoc --proto_path=src --java_out=build/gen src/foo.proto
安装过程会有一个坑参照下面解决:
错误原因
protobuf的默认安装路径是/usr/local/lib,而/usr/local/lib不在ubuntu体系默认的LD_LIBRARY_PATH里,所以就找不到lib
解决办法
(1) 在 /etc/ld.so.conf.d/目录下创建文件 bprotobuf.conf文件,文件内容如下
/usr/local/lib
(2) 输入命令
sudo ldconfig
这时,再输入protoc --version就可以正常看到版本号了
4.接着就是把工程转换成eclipse项目:
请注意,若果你网络有访问外国网站比较慢的情况,请修改你的maven源至国内源,我使用的阿里云的maven仓库:
maven阿里云中央仓库
maven作为一个项目管理 工具 确实非常好用,但是在国内这个网络条件下实在是让人恼火。之前oschina的中央仓库可用,现在oschina的maven服务器关了,一直没找到国内镜像来替代。今天发现阿里云公开了一个中央仓库,大家可以试试。
配置
修改maven根目录下的conf文件夹中的 setting.xml
文件,内容如下:
<mirrors> <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror> </mirrors>
之后就能享受如飞的maven下载速度。
一切准备好了,就开始我们编译步骤了
cd hadoop-maven-plugins mvn install cd .. mvn eclipse:eclipse -DskipTests
然后就是漫长的等待了……
附一张最后成功的图:
编译实际的过程用了应该有30多分钟,途中的26分钟只是因为protoc版本不对后的部分编译时间。
5.导入到eclipse中:
可以看到全都识别了,finish。
微量的错,基本不影响看主要的源代码了,当然你也可以去想法修复它们,这至少比直接一导入全是错要来的好了。
环境问题解决,以后就可以愉快的研究hadoop的源代码了。
Hadoop2.7.3+Spark2.1.0完全分布式集群搭建过程 http://www.linuxidc.com/Linux/2017-06/144926.htm
Hadoop2.3-HA高可用集群环境搭建 http://www.linuxidc.com/Linux/2017-03/142155.htm
Hadoop项目之基于CentOS7的Cloudera 5.10.1(CDH)的安装部署 http://www.linuxidc.com/Linux/2017-04/143095.htm
Hadoop2.7.2集群搭建详解(高可用) http://www.linuxidc.com/Linux/2017-03/142052.htm
使用Ambari来部署Hadoop集群(搭建内网HDP源) http://www.linuxidc.com/Linux/2017-03/142136.htm
Ubuntu 14.04下Hadoop集群安装 http://www.linuxidc.com/Linux/2017-02/140783.htm
CentOS 6.9下Hadoop伪分布式环境搭建 http://www.linuxidc.com/Linux/2017-06/144884.htm
更多Hadoop相关信息见 Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13
本文永久更新链接地址 : http://www.linuxidc.com/Linux/2017-06/144931.htm
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Android Studio导入AOSP源代码【亲测可行】
- 代码审计--源代码审计思路
- 如何阅读源代码
- 开放源代码库指南
- unittest 源代码阅读
- 扒一扒 EventServiceProvider 源代码
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。