一. 为什么要编译hadoop
因为appache给出的hadoop的安装包没有提供带C程序拜访的接口,所以咱们在应用本地库(本地库能够用来做压缩,以及反对C程序等等)的时候就会出问题,须要对Hadoop源码包进行从新编译
二. 下载Hadoop源码
hadoop官网下载
抉择须要下载的版本,抉择 Source download 下载源码
三. linux 编译装置
1. 在linux创立长期寄存源码文件夹
mkdir export/server
2.装置编译相干依赖
1、yum install gcc gcc-c++2、yum install autoconf automake libtool curl3、yum install lzo-devel zlib-devel openssl openssl-devel ncurses-devel4、yum install snappy snappy-devel bzip2 bzip2-devel lzo lzo-devel lzop libXtst
3.手动装置cmake
官网下载下载cmake,下载完后将安装包传到linux中新建的目录 export/server下
#解压tar zxvf cmake-3.13.5.tar.gz#编译装置cd /export/server/cmake-3.13.5./configuremake && make install#验证[root@node4 ~]# cmake -version cmake version 3.13.5
4. 手动装置snappy
下载地址
#卸载曾经装置的cd /usr/local/librm -rf libsnappy*#上传解压tar zxvf snappy-1.1.3.tar.gz #编译装置cd /export/server/snappy-1.1.3./configuremake && make install#验证是否装置[root@node4 snappy-1.1.3]# ls -lh /usr/local/lib |grep snappy-rw-r--r-- 1 root root 511K Nov 4 17:13 libsnappy.a-rwxr-xr-x 1 root root 955 Nov 4 17:13 libsnappy.lalrwxrwxrwx 1 root root 18 Nov 4 17:13 libsnappy.so -> libsnappy.so.1.3.0lrwxrwxrwx 1 root root 18 Nov 4 17:13 libsnappy.so.1 -> libsnappy.so.1.3.0-rwxr-xr-x 1 root root 253K Nov 4 17:13 libsnappy.so.1.3.0
5.装置配置JDK
下载地址
#解压安装包tar zxvf jdk-8u65-linux-x64.tar.gz#配置环境变量vim /etc/profileexport JAVA_HOME=/export/server/jdk1.8.0_65export PATH=$PATH:$JAVA_HOME/binexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarsource /etc/profile#验证是否装置胜利java -versionjava version "1.8.0_65"Java(TM) SE Runtime Environment (build 1.8.0_65-b17)Java HotSpot(TM) 64-Bit Server VM (build 25.65-b01, mixed mode)You have new mail in /var/spool/mail/root
6.装置配置maven
下载地址
#解压安装包tar zxvf apache-maven-3.5.4-bin.tar.gz#配置环境变量vim /etc/profileexport MAVEN_HOME=/export/server/apache-maven-3.5.4export MAVEN_OPTS="-Xms4096m -Xmx4096m"export PATH=:$MAVEN_HOME/bin:$PATHsource /etc/profile#验证是否装置胜利[root@node4 ~]# mvn -vApache Maven 3.5.4#增加maven 阿里云仓库地址 放慢国内编译速度vim /export/server/apache-maven-3.5.4/conf/settings.xml<mirrors> <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror></mirrors>
7.装置ProtocolBuffer 2.5.0
下载地址
#解压tar zxvf protobuf-2.5.0.tar.gz#编译装置cd /export/server/protobuf-2.5.0./configuremake && make install#验证是否装置胜利[root@node4 protobuf-2.5.0]# protoc --versionlibprotoc 2.5.0
8.编译hadoop
将下载的hadoop源码上传到服务器
#上传解压源码包tar zxvf hadoop-3.1.4-src.tar.gz#编译cd /export/server/hadoop-3.1.4-srcmvn clean package -Pdist,native -DskipTests -Dtar -Dbundle.snappy -Dsnappy.lib=/usr/local/lib#参数阐明:Pdist,native :把从新编译生成的hadoop动静库;DskipTests :跳过测试Dtar :最初把文件以tar打包Dbundle.snappy :增加snappy压缩反对【默认官网下载的是不反对的】Dsnappy.lib=/usr/local/lib :指snappy在编译机器上装置后的库门路
编译好的安装包门路
/export/server/hadoop-3.1.4-src/hadoop-dist/target