1.系统准备
Hadoop整体是跑在Linux系统上(没有研究过Mac的,忽略),基本不考虑Windows,
那么首先,一台可用的Linux操作系统是必须的,并且必须是打通外网的.因为Hadoop本身使用的Maven来做的Jar包管理,所以在编译过程中,需要打通外网,方便Maven下载需要的Jar包
前文 linux系统准备 准备好一个Linux操作系统
2.组件准备
Hadoop源码准备
切换到hadoop用户 #su - hadoop
固定的下载的源码路径 #mkdir source
源码下载 # wget http://archive.cloudera.com/cdh5/cdh/5/hadoop-2.6.0-cdh5.7.0-src.tar.gz
Hadoop编译需要的相关组件准备
怎么知道Hadoop需要些什么呢,Hadoop已经告诉我们了,不得不说Hadoop作为一个已经这么多年的成熟开源系统,文档对技术人员的友好已经做得非常好了
看这里 #cat /home/hadoop/source/hadoop-2.6.0-cdh5.7.0/BUILDING.txt 需要什么一目了然
----------------------------------------------------------------------------------
Requirements:
* Windows System
* JDK 1.7+
* Maven 3.0 or later
* Findbugs 1.3.9 (if running findbugs)
* ProtocolBuffer 2.5.0
* CMake 2.6 or newer
* Windows SDK or Visual Studio 2010 Professional
* Unix command-line tools from GnuWin32 or Cygwin: sh, mkdir, rm, cp, tar, gzip
* zlib headers (if building native code bindings for zlib)
* Internet connection for first build (to fetch all Maven and Hadoop dependencies)----------------------------------------------------------------------------------
够清楚了不? CMake 等在装操作系统的时候我们就已经安装了, 还需要一些相关的组件
OK,准备如下
jdk-8u45-linux-x64.gz
apache-maven-3.3.9-bin.zip
findbugs-1.3.9.zip
protobuf-2.5.0.tar.gz
.maven_local.tar.gz
这里多一个.maven_local,这是Maven的本地Jar,到时一并上传到服务器上.因为Maven的策略很简单,首先看本地有没有,本地没有根据配置的主服务器和镜像服务器从网络上一个一个的下到本地.
这里把本地已经下好的jar包提前打包到服务器上,就是为了避免服务器上再去下一次,这样可以节约编译时间.Hadoop需要的Jar包太多了,很多还需要墙,每下一次需要的时间实在是太长了(墙后至少半天,不墙一天都不够,还得中途不停清理Maven重下).
把这些统统上传到服务器上~/sofeware路径
一个一个来
3.JDK环境
应用目录 # mkdir ~/app
解压 #tar -xzvf ~/software/jdk-8u45-linux-x64.gz -C ~/app
配置环境变量 #vi ~/.bash_profile
添加如下:
export JAVA_HOME=/home/hadoop/app/jdk1.8.0_45
export PATH=$JAVA_HOME/bin:$PATH
应用配置 #source ~/.bash_profile
测试下 #java -version
4.MAVEN
解压 #unzip -n ~/software/apache-maven-3.3.9-bin.zip -d ~/app
配置环境变量 #vi ~/.bash_profile
编辑如下:
export MVN_HOME=/home/hadoop/app/apache-maven-3.3.9
export PATH=$MVN_HOME/bin:$PATH
应用配置 #source ~/.bash_profile
测试
#mvn --version
maven本地仓库路径 # mkdir ~/maven_repo
修改maven默认本次仓库路径 # vi /home/hadoop/app/apache-maven-3.3.9/conf/settings.xml
修改=> <localRepository>/home/hadoop/maven_repo</localRepository>
5.findbugs
解压 #unzip -n ~/software/findbugs-1.3.9.zip -d ~/app
配置环境变量 #vi ~/.bash_profile
继续配置环境变量:
export FINDBUGS_HOME=/home/hadoop/app/findbugs-1.3.9
export PATH=$FINDBUGS_HOME/bin:$PATH
应用配置 #source ~/.bash_profile
测试 #findbugs -version
6.protobuf
注意这个是源码,并不是发布版的,所以要编译下 (需要gcc组件,我们在装系统时就已经装好了)
解压 编译
#tar -xzvf ~/software/protobuf-2.5.0.tar.gz -C ~/source
#~/source/protobuf-2.5.0/configure --prefix=/home/hadoop/app/protobuf
#cd ~/source/protobuf-2.5.0/
#make && make install
编译成功:
然后把这个组件打进环境变量里去
export PROTOC_HOME=/home/hadoop/app/protobuf
export PATH=$PROTOC_HOME/bin:$PATH
测试下 #protoc --version
6.其它
譬如ssl 等等 都已经在装系统时就装了 接下来终于开始正式编译了
7.编译Hadoop
进入Pom.xml地址: #cd ~/source/hadoop-2.6.0-cdh5.7.0
编译:#mvn clean package -Pdist,native -DskipTests -Dtar
正常情况,因为Hadoop本身所需要的Jar包我们已经提前下好,所以编译速度还是能够接受的,我这台破机器在虚拟机上编译也只需要大概十几分钟左右就OK了
编译成功
编译后的安装包在哪里? 在这里
编译完成,后面再来部署它