pig2 发表于 2014-6-15 12:43:06

从零教你在Linux环境下(ubuntu 12.04)如何编译hadoop2.4

问题导读:

1.如果获取hadoop srcmaven包?
2.编译hadoop需要装哪些软件?
3.如何编译hadoop2.4?
扩展:
编译hadoop为何安装这些软件?

static/image/hrline/4.gif



一、首先下载hadoop源码包
下载的方式还是比较多的
1.svn的方式
svn下载首先需要安装SVN,如果想尝试使用svn,可以参考源码管理、获取网络源码工具:TortoiseSVN使用手册,hadoop的svn下载地址点此
2.压缩包的方式
这里我们介绍一种压缩包的方式。
首先我们登录官网:
http://hadoop.apache.org/,我们找到下面链接,点进去下载即可。如果刚接触,不知道怎么下载,可以查看帖子新手指导:hadoop官网介绍及如何下载hadoop(2.4)各个版本与查看hadoop API介绍,里面介绍的很详细。

http://www.aboutyun.com/data/attachment/forum/201405/08/204901ry3om753yt330sq7.png

二、解压
aboutyun@master:~$ tar zxvf hadoop-2.4.0-src.tar.gz
解压完毕,我们会看到相应的文件夹:



三、解压完毕,我们开始准备编译所需要的软件
这里软件的准备,很多文章写的都不全,这里整理一下。哪些软件是需要安装的。
这里需要说明的是有的Linux有自带的这些工具,这个需要仔细看一下版本是否匹配,不匹配则升级一下,有些不能升级,那么就重装一下吧
1、jdk的安装
步骤下载压缩包、解压、配置环境变量

(1)jdk下载
链接: http://pan.baidu.com/s/1jGr41SU 密码: rawv
(2)jdk解压
tar zxvf jdk-7u51-linux-x64.tar.gz
然后重命令为:


(3)配置环境变量:
如下图所示红字部分为:(记得这里的路径改成自己的实际安装路径)
/usr/jdk1.7/bin





(4)检验是否安装成功



2、maven的安装

sudo apt-get install maven我这里已经安装


上面可能还需要配置环境变量之类的,但是我这里没有好像是系统自带的,网上的资料也比较多,注意maven的版本,我这里是3.0.4,hadoop2.4需要maven的这个版本或则更高的版本3.2.1版本也是可以的。
验证安装是否成功
mvn -version




3.protobuf的安装
为防止出错,这里补充一些内容,
3.1先安装g++sudo apt-get install g++


(1)下载

sudo wget https://protobuf.googlecode.com/files/protobuf-2.5.0.tar.gz由于google不能访问,可以从网盘下载链接:http://pan.baidu.com/s/1dDgWe6P 密码:xgiu

(2)解压
tar zxvf protobuf-2.5.0.tar.gz
如下效果:




然后进入protobuf-2.5.0文件夹,进行如下操作:


$ sudo ./configure
$ sudo make
$ sudo make check
$ sudo make install
$ sudo ldconfig
修改环境变量:
sudo nano /etc/profile


export LD_LIBRARY_PATH=~/protobuf-2.5.0(LD_LIBRARY_PATH的这里,填写的是protobuf文件的位置)

source /etc/profile注意:配置/etc/profile,在虚拟机重启后,可能配置会失效,所以重启后,需要再次执行source操作。


(3)验证

protoc --version




4.安装openssl库
sudo apt-get install libssl-dev
5.CMake安装
sudo yum install cmake或则
sudo apt-get install cmake
6.ant安装

(1)首先下载ant
百度网盘: apache-ant-1.9.4-bin.tar.gz
http://pan.baidu.com/s/1c0vjhBy

或则下面链接:
apache-ant-1.9.4-bin.tar.gz

(2)解压
tar zxvfapache-ant-1.9.4-bin.tar.gz
(3)配置环境变量


如下图所示:
1.打开profile

sudo vi /etc/profile2.添加下图红字部分,记得修改成自己的路径

http://www.aboutyun.com/data/attachment/forum/201406/15/002130xawela2ygwlaamb7.png

3.生效
source/etc/profile
4.检验
ant -version
http://www.aboutyun.com/data/attachment/forum/201406/15/002333fh14zrrg4a00g444.png


四、编译hadoop2.4
上面准备工作已经做的差不多了,我们终于可以开始,记得进入src文件夹下,输入下面命令mvn package -Pdist,native -DskipTests -Dtar


等了40多分钟,ok


在目录~/hadoop-2.4.0-src/hadoop-dist/target下有文件:
hadoop-2.4.0.tar.gz




更多内容:hadoop2.4汇总:hadoop2.4插件下载、完全分布式、伪分布、eclipse插件开发大全


问题总结:
这里还需要在补充:
1.遇到错误1:CMake没有安装
Failed to execute goal org.apache.maven.plugins:maven-antrun-

plugin:1.6:run (make) on project hadoop-common: An Ant BuildException has

occured: Execute failed: java.io.IOException: Cannot run program "cmake" (in

directory "/home/wyf/hadoop-2.0.2-alpha-src/hadoop-common-project/hadoop-

common/target/native"): java.io.IOException: error=2, No such file or directory

->

To see the full stack trace of the errors, re-run Maven with the -e

switch.
Re-run Maven using the -X switch to enable full debug logging.

For more information about the errors and possible solutions, please

read the following articles:


http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
解决方法:
CMake没有安装
sudo yum install cmake或则使用
sudo apt-get install cmake

static/image/hrline/2.gif



2.遇到错误2:ant没有安装
ERROR] Failed to execute goal org.codehaus.mojo.jspc:jspc-maven-plugin:2.0-

alpha-3:compile (hdfs) on project hadoop-hdfs: Execution hdfs of goal

org.codehaus.mojo.jspc:jspc-maven-plugin:2.0-alpha-3:compile failed: Plugin

org.codehaus.mojo.jspc:jspc-maven-plugin:2.0-alpha-3 or one of its dependencies

could not be resolved: Could not transfer artifact ant:ant:jar:1.6.5 from/to

central (http://repo.maven.apache.org/maven2): GET request of:

ant/ant/1.6.5/ant-1.6.5.jar from central failed: Read timed out ->

To see the full stack trace of the errors, re-run Maven with the -e

switch.
Re-run Maven using the -X switch to enable full debug logging.

For more information about the errors and possible solutions, please

read the following articles:


http://cwiki.apache.org/confluence/display/MAVEN/PluginResolutionException

After correcting the problems, you can resume the build with the command
   mvn <goals> -rf :hadoop-hdfs

1.首先下载ant
百度网盘: apache-ant-1.9.4-bin.tar.gz
http://pan.baidu.com/s/1c0vjhBy

或则下面链接:
apache-ant-1.9.4-bin.tar.gz

2.解压
tar zxvfapache-ant-1.9.4-bin.tar.gz3.配置环境变量
记得配置环境变量
如下图所示:
1.打开profilesudo vi /etc/profile2.添加下图红字部分,记得修改成自己的路径



3.生效
source/etc/profile
4.检验
ant -version






static/image/hrline/2.gif





3.protobuf版本过低,错误现象
Failed to execute goal org.apache.hadoop:hadoop-maven-plugins:2.4.0:prot
oc (compile-protoc) on project hadoop-common: org.apache.maven.plugin.MojoExecut
ionException: 'protoc --version' did not return a version ->

To see the full stack trace of the errors, re-run Maven with the -e swit
ch.
Re-run Maven using the -X switch to enable full debug logging.

For more information about the errors and possible solutions, please rea
d the following articles:
http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionE
xception

After correcting the problems, you can resume the build with the command

   mvn <goals> -rf :hadoop-common




hadoop2.4对应的版本是protobuf-2.5.0


解决办法:按照安装步骤中protobuf的安装即可
http://www.aboutyun.com/static/image/hrline/2.gif

4.权限问题



解决办法:
(1)加上sudo
(2)通过
ll安装包解压之后,所属用户可能发生变化:

改变用户

sudo chown -R aboutyun:aboutyun hadoop-2.4.0-src
上面aboutyun改成自己的所属组和用户


命令查看是否属于当前用户






desehawk 发表于 2014-12-4 23:18:16

几多愁 发表于 2014-12-4 22:52
系统就是按照这个帖子装的啊 ,会不会是maven源的问题,怎么修改?

应该不会,参考这个,可能对你有所帮助
编译hadoop2.5.2经验总结、问题分析及下载32位、64位安装包下载

茅草屋-单眼皮 发表于 2014-9-11 13:33:08

我装HADOOP2.5,以上步骤还存在一个问题:用
sudo apt-get install maven
获得的版本跟版主的差不多。好象是得到的3.0.5

用这个版本编译hadoop src会出错:在这步
Apache Hadoop HDFS ............................
解决:
下载最新版本MAVEN就没问题了。maven官网下
Apache Maven 3.2.3

终于可以看到:
------------------------------------------------------------------------
BUILD SUCCESS
------------------------------------------------------------------------
Total time: 01:22 h
Finished at: 2014-09-10T20:32:03-07:00
Final Memory: 79M/350M
------------------------------------------------------------------------


不明白我为什么会来到这里。想想都觉得晕呼
只因为一个名词:NOSQL,把我搞的。
原以为NOSQL只是个开源的数据库,不用写SQL的数据库,没想到我捅了个大缕子。
这几天的感觉就是进入了混沌的世界,一片迷芒中,还好这里高手不少,文章挺好。我可以一点点理情头绪。

pig2 发表于 2014-8-16 15:02:56

本帖最后由 pig2 于 2014-8-16 15:04 编辑

小鱼 发表于 2014-8-16 14:56
版大,你好,我按照你的教程成功编译了64位的hadoop2.4.1。现在有两个问题想请问你下。1.因为我现在的系统 ...
Hadoop之所以要编译,是因为官网没有提供64位安装包,只提供了32位的。hbase你直接下载即可,可以不用编译。
详细参考:
hbase 0.96整合到hadoop2.2三个节点全分布式安装高可靠文档

对于防火墙,可以不用关闭,但是需要开放一些端口,这里需要对防火墙有比较好的理解,才能这么做。所以为了避免麻烦,大多数,直接关闭了防火墙。

ucloud 发表于 2014-6-16 09:36:28

刚学,正好用得上。够详细的。

gaoyanzeng 发表于 2014-6-16 18:46:13

够详细,谢谢啊。

lycan 发表于 2014-6-17 00:18:27

挺有用的,谢谢分享

微笑的老颜 发表于 2014-6-19 21:21:04

非常好的帖子 强烈支持 多谢

howtodown 发表于 2014-7-8 14:00:19

纯环境,需要安装下面内容:

sudo apt-get install maven
sudo apt-get install protobuf-compiler
sudo apt-get install cmake
sudo apt-get install zlib1g.dev
sudo apt-get install g++
sudo apt-get install libglib2.0-dev
sudo apt-get install libssl-dev

小鱼 发表于 2014-8-16 14:56:56

版大,你好,我按照你的教程成功编译了64位的hadoop2.4.1。现在有两个问题想请问你下。1.因为我现在的系统是64位的。如果我要安装hbase或者hive等其他组件,是不是也是要编译才能使用。2.为什么集群之前要关闭防火墙。如果在正式线上环境下也是要关闭的吗?貌似关闭防火墙还是有点不妥的吧,在线上的话。这两个菜鸟级问题,望你指教。。谢谢!

茅草屋-单眼皮 发表于 2014-9-10 21:41:54

装这个 protobuf 时
SUDO MAKE 出错。
configure error: C++ preprocessor "/lib/cpp" fails sanity check
没注意看howtodown回的内容,自已网上找了执行:
sudo apt-get install build-essential
这样一下,make没问题了
也不知道有没有多装了其它东西了,或者对应版本有没问题了.
不管了,先可以进行下去再说。
页: [1] 2 3 4
查看完整版本: 从零教你在Linux环境下(ubuntu 12.04)如何编译hadoop2.4