CDH版hadoop2.6.0-cdh5.7.0源码编译
前置要求
安装依赖库
$>yum install -y svn ncurses-devel gcc*
$>yum install -y openssl openssl-devel svn ncurses-devel zlib-devel libtool
$>yum install -y snappy snappy-devel bzip2 bzip2-devel lzo lzo-devel lzop autoconf automake cmake
安装JDK和配置环境变量
- 解压
tar -zxvf jdk-7u67-linux-x64.gz -C ../app/
- 修改权限
[[email protected] app]# ll total 4 drwxr-xr-x 8 uucp 143 4096 Jul 26 2014 jdk1.7.0_67 [[email protected] app]# chown -R root:root jdk1.7.0_67/ [[email protected] app]# ll total 4 drwxr-xr-x 8 root root 4096 Jul 26 2014 jdk1.7.0_67 [[email protected] app]#
- 配置环境变量
vi /etc/profile # 增加java环境 export JAVA_HOME=/home/hadoop/app/jdk1.7.0_67 export PATH=$JAVA_HOME/bin:$PATH #生效环境 source /etc/profile
安装maven和配置环境变量
- 解压
tar -zxvf apache-maven-3.6.0-bin.tar.gz -C ../app/
- 配置环境变量
vi /etc/profile # 增加maven环境 export MAVEN_HOME=/home/hadoop/app/apache-maven-3.6.0 export MAVEN_OPTS="-Xms256m -Xmx512m" export PATH=$MAVEN_HOME/bin:$PATH # 生效环境 source /etc/profile # 测试是否生效 mvn -version ```
安装protobuf 和配置环境变量
- 解压
tar -zxvf protobuf-2.5.0.tar.gz -C ../app/
- 进入软件目录执行如下命令
[[email protected] app]# cd protobuf-2.5.0/ [[email protected] protobuf-2.5.0]# ./configure --prefix=/home/hadoop/app/protobuf-2.5.0 # --prefix= 是用来待会编译好的包放在为路径 # 这两步是在编译安装 [[email protected] protobuf-2.5.0]# make [[email protected] protobuf-2.5.0]# make install
- 修改环境变量
vi /etc/profile # 增加maven环境 export PROTOC_HOME=/home/hadoop/app/protobuf-2.5.0 export PATH=$PROTOC_HOME/bin:$PATH # 生效环境 source /etc/profile # 测试是否生效 protoc --version 出现 libprotoc 2.5.0即为安装成功
重头戏
首先我们先修改下maven相关内容
修改maven本地仓库地址
<localRepository>/home/hadoop/.m2/repo</localRepository>
注意:当前用户下 是没有.m2 文件夹的需要手动创建
修改maven 镜像 修改成阿里的镜像
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
手动加入maven仓库
因为后面编译hadoop的时候,需要下载maven的jar包,比较多,这里我提供一个下载好的仓库地址
链接: https://pan.baidu.com/s/1RJDdwbcHPWNUKQ1MCQdOdQ 提取码: p7g3 复制这段内容后打开百度网盘手机App,操作更方便哦
下载下来之后 直接把内容解压之后,放在本地maven仓库,也就是之前指定的/home/hadoop/.m2/ 下面即可,解压之后的文件名 需要和之前指定的本地仓库地址 核对下 即可.
开始编译
进入解压好的hadoop的目录下
#执行命令 开始编译
mvn clean package -Pdist,native -DskipTests -Dtar
接下来我们要做的 就是等~~~
漫长的等待之后 ,编译成功~~~
成功后生成的包在/hadoop-2.6.0-cdh5.7.0/hadoop-dist/target/ 目录下
后记
因为之前编译的时候,也是为了能让 hadoop native支持snappy 以及 bzip2 之类的
测试下是否支持
[[email protected] bin]$ hadoop checknative
18/12/05 12:52:23 INFO bzip2.Bzip2Factory: Successfully loaded & initialized native-bzip2 library system-native
18/12/05 12:52:23 INFO zlib.ZlibFactory: Successfully loaded & initialized native-zlib library
Native library checking:
hadoop: true /home/hadoop/app/hadoop-2.6.0-cdh5.7.0/lib/native/libhadoop.so.1.0.0
zlib: true /lib64/libz.so.1
snappy: true /usr/lib64/libsnappy.so.1
lz4: true revision:99
bzip2: true /lib64/libbz2.so.1
openssl: true /usr/lib64/libcrypto.so