Ubuntu16.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.-src.tar.gz
cd hadoop-2.7.-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. (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,实际执行的过程会因为无法翻墙,导致秘钥无法下载。
替代的方法:从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
安装过程:
贴一个别人的连接
http://blog.csdn.net/lijiajia81/article/details/19204099
安装过程会有一个坑参照这篇文章解决:
以下摘自:http://www.cnblogs.com/javaee6/p/4849051.html
错误原因
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仓库:
再贴一个连接:http://blog.csdn.net/u010717403/article/details/52188496
一切准备好了,就开始我们编译步骤了
cd hadoop-maven-plugins
mvn install
cd ..
mvn eclipse:eclipse -DskipTests
然后就是漫长的等待了……
附一张最后成功的图:
编译实际的过程用了应该有30多分钟,途中的26分钟只是因为protoc版本不对后的部分编译时间。
5.导入到eclipse中:
可以看到全都识别了,finish。
微量的错,基本不影响看主要的源代码了,当然你也可以去想法修复它们,这至少比直接一导入全是错要来的好了。
环境问题解决,以后就可以愉快的研究hadoop的源代码了。
有问题可以,留下评论,或者联系我:584754656@qq.com
Ubuntu16.04下将hadoop2.7.3源代码导入到eclipse neon中的更多相关文章
- ubuntu16.04下caffe以cpu运行faster rcnn demo
参考https://haoyu.love/blog404.html 获取并修改代码 首先,我们需要获取源代码: git clone --recursive https://github.com/rbg ...
- Ubuntu16.04下升级Python到3.6.5
本文链接:https://blog.csdn.net/chaiyu2002/article/details/82698376原帖存于IT老兵博客.Ubuntu16.04下升级Python到3.6.5 ...
- Ubuntu16.04下caffe CPU版的详细安装步骤
一.caffe简介 Caffe,是一个兼具表达性.速度和思维模块化的深度学习框架. 由伯克利人工智能研究小组和伯克利视觉和学习中心开发. 虽然其内核是用C++编写的,但Caffe有Python和Mat ...
- Linux:Ubuntu16.04下创建Wifi热点
Linux:Ubuntu16.04下创建Wifi热点 说明: 1.Ubuntu16.04里面可以直接创建热点,而不用像以前的版本,还要其他辅助工具. 2.本篇文章转载自编程人生 具体步骤如下: 1. ...
- Ubuntu14.04下安装Hadoop2.5.1 (单机模式)
本文地址:http://www.cnblogs.com/archimedes/p/hadoop-standalone-mode.html,转载请注明源地址. 欢迎关注我的个人博客:www.wuyudo ...
- 二、Ubuntu14.04下安装Hadoop2.4.0 (伪分布模式)
在Ubuntu14.04下安装Hadoop2.4.0 (单机模式)基础上配置 一.配置core-site.xml /usr/local/hadoop/etc/hadoop/core-site.xml ...
- [转]ubuntu(12.04)下, 命令 ,内核 源代码的获取
[转]ubuntu(12.04)下, 命令 ,内核 源代码的获取 http://blog.chinaunix.net/uid-18905703-id-3446099.html 1.命令:例如:要查看l ...
- Ubuntu16.04下部署 nginx+uwsgi+django1.9.7(虚拟环境pyenv+virtualenv)
由于用的新版本系统,和旧的稍有差别,在网上搜了很多相关资料,搞了三天终于搞好在Ubuntu16.04下的部署,接下来就详细写写步骤以及其中遇到的问题.前提是安装有虚拟环境pyenv+virtualen ...
- Ubuntu16.04下安装数据库oracle客户端
在Ubuntu16.04下安装oracle数据库客户端,使Django项目连接到远程Oracle数据库. 1.下载oracle客户端安装包: 进入官网http://www.oracle.com/tec ...
随机推荐
- 安卓系统使用摄像头API
原文链接:定制自己的安卓Camera 参考链接:http://blog.csdn.net/tankai19880619/article/details/9075839 ...
- 安卓使用ImageView显示OpenCV-Mat
Android 的Application-native调试暂时还只能进行主线程调试,在GDB里面,运行于子线程的OpenCv数据处理过程不能直接调试,OPenCV-Native函数 public ...
- 与swift协议相关的技术
一.协议定义与实现: 1.关联类型: 2.协议组合: 3.协议扩展: 4.协议实现. 二.协议使用:
- vue-router在同一个路由下切换,取不到变化的路由参数
最近用vue写项目的时候碰到一个问题,在同一个页面下跳转,路由地址不变,路由参数有变化,一开始只是在data里取路由的参数,发现根本取不到变化的路由参数. 例如:订单列表也跳转详情页,跳转方法如下 & ...
- ubuntu18.0安装RabbitMQ
RabbitMQ是一个消息队列,用于实现应用程序的异步和解耦.生产者将生产消息传送到队列,消费中从队列中拿取消息并处理.生产者不用关心是谁来消费,消费者不用关系是谁在生产消息,从而达到解耦的目的.本文 ...
- 洛谷P1025 数的划分【dp】
将整数nn分成kk份,且每份不能为空,任意两个方案不相同(不考虑顺序). 例如:n=7n=7,k=3k=3,下面三种分法被认为是相同的. 1,1,51,1,5; 1,5,11,5,1; 5,1,15, ...
- 目录-Linux
Linux文件系统: Linux: glibc 程序编译方式: 动态链接 静态编译 进程的类型: 终端:硬件设备,关联一个用户接口 与终端相关:通过终端启动 与终端无关:操作引导启动过程当中自动启动 ...
- vue自定义拖动指令
1.在项目开发中,需要对div进行拖动.因为需要自定义组件 a>定义全局拖拽指令: 定义全局指令,需要在main.js中写入vue.directive('drag',{});即可.但是一般会在外 ...
- 【习题 4-5 Uva1590】 IP Networks
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 假设从第i位开始有不一样的. 那么就把i+1..32位全都置0. 掩码的话类似.前i为全为1,后面32-i位全0. 尽量让后面的连续 ...
- 【例题4-2 uva489】Hangman Judge
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 水题. 中间就赢了算赢.(重复说,算错 [代码] #include <bits/stdc++.h> using name ...