上次我们说到了文件压缩和文件格式,为了本地native包不为空,我们决定自己编译一下Hadoop源码。
环境准备
Linux环境:CentOS 6.5
jdk版本:jdk1.7(注:pom文件里面很多注明了1.7,所以最好用1.7编译)
maven版本:apache-maven-3.6.0
Hadoop版本:hadoop-2.6.0-cdh5.7.0
依赖jar包库:repo
编译准备
编译前我们需要做如下几步:
创建hadoop用户,并在家目录创建app source software repo等目录
部署JAVA环境
- 安装maven(记得修改本地仓库地址和添加一个阿里maven仓库)
- 安装Protocol Buffer 2.5.0
前三步我就不写了,我们直接讲如何安装Protocol Buffer 2.5.0
安装Protocol Buffer 2.5.0
首先下载Protocol Buffer,这里我已经放到云盘,大家需要自己下载。也可以去官网找。
进到相关目录
1 | su - hadoop |
使用rz命令上传
1 | rz |
解压
1 | tar -xzvf protobuf-2.5.0.tar.gz -C ../source |
进行安装
使用root安装一下类库和命令(如果已经存在可以略过)
1 | exit |
回到我们的需要编译的目录
1 | cd ~/source/protobuf-2.5.0 |
指定安装目录
1 | ./configure --prefix=/home/hadoop/app/protobuf-2.5.0 |
开始安装
1 | make && make install |
配置用户变量
1 | vi ~/.bash_profile |
添加如下语句
1 | export PROTOC_HOME=/home/hadoop/app/protobuf-2.5.0 |
使环境变量生效
1 | source ~/.bash_profile |
验证
1 | protoc --version |
安装其它依赖
新开一个窗口,使用root安装一些类库
1 | yum install -y openssl openssl-devel svn ncurses-devel zlib-devel libtool |
编译Hadoop
进入相关目录
1 | cd ~/software |
使用rz命令上传hadoop-2.6.0-cdh5.7.0
1 | rz |
解压
1 | tar -zxvf hadoop-2.6.0-cdh5.7.0-src.tar.gz -C ../source |
进行安装
上传repo库
1 | cd ~/repo |
修改maven的setting.xml,将你的仓库地址指向repo这个目录
1 | vi $MAVEN_HOME/conf/setting.xml |
1 | <localRepository>/home/hadoop/repo</localRepository> |
进入相关目录
1 | cd ~/source/hadoop-2.6.0-cdh5.7.0 |
-Dtar :打成tar包
编译成功
编译之后
我们需要的包在以下的目录,将它拷贝到我们的app下面就可以开始我们hadoop部署了!
1 | cp /home/hadoop/source/hadoop-2.6.0-cdh5.7.0/hadoop-dist/target/hadoop-2.6.0-cdh5.7.0.tar.gz ~/app/ |