编译环境准备
1.采用阿里云的香港云主机,2core4GB,centos-7.2。编译过程中需要下载许多包,本地编译会一直卡在downloading界面,无法完成编译,所以需要外部网络。
2.安装必要插件
> yum install -y svn ncurses-devel
> yum install -y gcc gcc-c++ make cmake
> yum install -y openssl openssl-devel svn ncurses-develzlib-devel libtool
> yum install -y snappy snappy-devel bzip2 bzip2-devel lzo lzo-devel lzop autoconf automake cmake
3.安装jdk7:
mkdir -p /usr/java
tar -zxvf /bigdata/package/jdk-7u80-linux-x64.tar.gz -C /usr/java
cd /usr/java/
chown -R root:root jdk1.7.0_80
vim /etc/profile
export JAVA_HOME=/usr/java/jdk1.7.0_80
export PATH=$JAVA_HOME/bin:$PATH
source /etc/profile
4.安装maven-3.3.9
tar -zxvf /bigdata/package/apache-maven-3.3.9-bin.tar.gz -C /bigdata/apps/
vim ~/.bash_profile
export MAVEN_HOME=/bigdata/apps/apache-maven-3.3.9
export MAVEN_OPTS="-Xms1024m -Xmx1024m"
export PATH=$MAVEN_HOME/bin:$PATH
source ~/.bash_profile
测试:which mvn
配置maven的本地仓库位置
<localRepository>/bigdata/maven-3.3.9_repo</localRepository>
添加阿里云中央仓库地址,注意一定要写在之间,否则后面编译会报错
<mirror>
<id>aliyun</id>
<mirrorOf>central</mirrorOf>
<name>aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
5.安装protobuf
tar -zxvf /bigdata/package/protobuf-2.5.0.tar.gz -C /bigdata/apps/
cd /bigdata/apps/protobuf-2.5.0/
./configure --prefix=/bigdata/apps/protobuf-2.5.0
make
make install
vim ~/.bash_profile
export PROTOBUF_HOME=/bigdata/apps/protobuf-2.5.0
export PATH=$PROTOBUF_HOME/bin:$PATH
source ~/.bash_profile
测试:protoc --version
编译
tar -zxvf hadoop-2.6.0-cdh5.15.1-src.tar.gz -C /bigdata/apps/
cd /bigdata/apps/hadoop-2.6.0-cdh5.15.1
mvn clean package -Pdist,native -DskipTests -Dtar
编译过程中遇到的问题
- 解决办法:修改pom.xml文件,将https改为http
2.编译过程中会遇到关于avro包下载失败。
解决办法:根据报错提示,手动下载相关jar包或pom文件到指定目录即可,注意删除之前的下载残余。(报错中的包名就是指定路径,只是用点号或分号隔开了,在maven本地仓库中一级一级点进去就能找到。)