内容简介: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 源代码
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Learning JavaScript
Shelley Powers / Oreilly & Associates Inc / 2006-10-17 / $29.99
As web browsers have become more capable and standards compliant, JavaScript has grown in prominence. JavaScript lets designers add sparkle and life to web pages, while more complex JavaScript has led......一起来看看 《Learning JavaScript》 这本书的介绍吧!