首先明确一点,Hadoop一定是源码自行编译发布,基本不会用官方已经编译好的版本.
1.版本问题,官方编译的版本依赖是固定的,实际上受限自身服务器,特别是已经有一些Hadoop技术积累的情况,需要调整Hadoop来适应自身,否则就会变成不得不
2.临时性的BUG调整,Hadoop不是完全没有问题的,事实上任何框架都不可能完全没有BUG,那么如果万一遇见了这种情况,而官方又没来得及出解决版本的时候,这时源码编译版本可以让我们临时修复解决,避免线上问题继续扩大
3.二次开发.这可能听起来比较搞笑.Hadoop那么牛逼的框架,你还要做二次开发,嘲笑.但个人觉得没有必要对Hadoop神化,事实上作为技术人员更应该去尝试驾驭而不是
总的来说,个人觉得无论对任何框架,控制力都是非常重要,就好像武侠中所说,是人驭剑而不是剑驭人,从源码编译发布,是我们能真正驾驭Hadoop的基石
Hadoop官网上下载需要的版本,这里我下的是 hadoop-2.8.1-src.tar.gz
1.系统准备
Hadoop整体是跑在Linux系统上(没有研究过Mac的,忽略),基本不考虑Windows,那么首先,一台可用的Linux操作系统是必须的,并且必须是打通外网的.因为Hadoop本身使用的Maven来做的Jar包管理,所以在编译过程中,需要打通外网,方便Maven下载需要的Jar包
前文 linux系统准备 准备好一个Linux操作系统
2.组件准备
Hadoop本身还是需要依赖一些其它的组件的,这里我们也提前准备好
怎么知道Hadoop需要些什么呢,Hadoop已经告诉我们了,不得不说Hadoop作为一个已经这么多年的成熟开源系统,文档对技术人员的友好已经做得非常好了
看这里 /hadoop-2.8.1-src/BUILDING.txt 需要什么一目了然
----------------------------------------------------------------------------------
Requirements:* Unix 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 (if compiling native code), must be 3.0 or newer on Mac
* Zlib devel (if compiling native code)
* openssl devel (if compiling native hadoop-pipes and to get the best HDFS encryption performance)
* Linux FUSE (Filesystem in Userspace) version 2.6 or above (if compiling fuse_dfs)
* 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
.m2.tar.gz
这里多一个.m2,这是Maven的本地Jar,到时一并上传到服务器上.因为Maven的策略很简单,首先看本地有没有,本地没有根据配置的主服务器和镜像服务器从网络上一个一个的下到本地.
这里把本地已经下好的jar包提前打包到服务器上,就是为了避免服务器上再去下一次,这样可以节约编译时间.Hadoop需要的Jar包太多了,很多还需要墙,每下一次需要的时间实在是太长了(墙后至少半天,不墙一天都不够,还得中途不停清理Maven重下).
把这些统统上传到服务器上 最好使用 hadoop 用户登录,从这里开始之后,严格来说已经不算运维环节,已经不会有root权限给你了,提前适应一下
命令:
#mkdir /opt/software
#cd /opt/software && rz
一个一个来
3.JDK环境
解压 #unzip jdk-8u45-linux-x64.gz
拷贝路径 #cd jdk-8u45-linux-x64 && pwd
配置环境变量
#vi /etc/profile
编辑如下:
export JAVA_HOME=
测试下
#java -version
4.MAVEN
解压 #unzip apache-maven-3.3.9-bin.zip
拷贝路径 #cd apache-maven-3.3.9-bin && pwd
配置环境变量
#vi /etc/profile
编辑如下:
export MVM_HOME=
测试下
#mvm --version
5.findbugs
解压 #unzip findbugs-1.3.9.zip