目录
- 为什么要源码编译
- [Hadoop 编译源码](#Hadoop 编译源码)
-
- 1前期工作准备
- [2jar 包安装](#2jar 包安装)
-
- [2.1安装 Maven](#2.1安装 Maven)
- [2.2安装 ant](#2.2安装 ant)
- [2.3安装 glibc-headers 和 g++](#2.3安装 glibc-headers 和 g++)
- [2.4安装 make 和 cmake](#2.4安装 make 和 cmake)
- [2.5安装 protobuf](#2.5安装 protobuf)
- [2.6安装 openssl 库](#2.6安装 openssl 库)
- [2.7安装 ncurses-devel 库](#2.7安装 ncurses-devel 库)
- 3编译源码
-
- [3.1解压源码到 /opt/ 目录](#3.1解压源码到 /opt/ 目录)
- [3.2 进入到 hadoop 源码主目录 /opt/hadoop-2.7.7-src,通过 maven 执行编译命令](#3.2 进入到 hadoop 源码主目录 /opt/hadoop-2.7.7-src,通过 maven 执行编译命令)
-
- [3.3成功的 64 位 hadoop 包在 /opt/hadoop-2.7.7-src/hadoop-dist/target 下](#3.3成功的 64 位 hadoop 包在 /opt/hadoop-2.7.7-src/hadoop-dist/target 下)
为什么要源码编译
- Hadoop是使用Java语言开发的,但是有一些需求和操作并不适合使用java,所以就引入了本地库(Native Libraries) 的概念。
- 说白了,就是Hadoop的某些功能,必须通过JNT来协调Java类文件和Native代码生成的库文件一起才能工作。
- linux系统要运行Native 代码,首先要将Native 编译成目标CPU 架构的[.so]文件。而不同的处理器架构,需要编译出相应平台的动态库[.so] 文件,才能被正确的执行,所以最好重新编译一次hadoop源码,让[.so]文件与自己处理器相对应。
- 简单来说就是编译出适合自己机器的Hadoop。
Hadoop 编译源码
1前期工作准备
- CentOS 联网
- 配置 CentOS 能连接外网。Linux 虚拟机 ping www.baidu.com 是畅通的。
- jar 包准备(hadoop 源码、JDK8、maven、ant 、protobuf)
① hadoop-2.7.7-src.tar.gz
② jdk-8u151-linux-x64.tar.gz
③ apache-ant-1.9.9-bin.tar.gz(build 工具,打包用的)
④ apache-maven-3.0.5-bin.tar.gz
⑤ protobuf-2.5.0.tar.gz(序列化的框架)
2jar 包安装
参考我的另一篇博客:【Linux】Linux上的一些软件安装与环境配置(Centos7配置JDK、Hadoop)
2.1安装 Maven
-
下载地址:链接:https://pan.baidu.com/s/1qp_LhRMvqpIXXznbDdK3kw?pwd=6666 提取码:6666
-
上传到/root/soft
-
解压到/opt/module/
powershelltar -zxvf apache-maven-3.8.4-bin.tar.gz -C /opt/module/
-
配置环境变量
powershellvim /etc/profile #添加以下内容 export MAVEN_HOME=/opt/module/apache-maven-3.8.4 export PATH=$PATH:$MAVEN_HOME/bin #生效 source /etc/profile
-
进入解压后的 Maven 目录,编辑配置文件(更改 Maven 镜像)
xml<mirror> <id>nexus-aliyun</id> <mirrorOf>central</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url> </mirror>
-
查看 Maven 是否安装成功
2.2安装 ant
-
下载地址:链接:https://pan.baidu.com/s/1_5AU5KjwjWBZoNEYwVj5sw?pwd=6666 提取码:6666
-
上传到/root/soft
-
解压到/opt/module/
powershelltar -zxvf apache-ant-1.9.9-bin.tar.gz -C /opt/module/
-
配置环境变量
powershell
vim /etc/profile
#添加以下内容
#ANT_HOME
export ANT_HOME=/opt/module/apache-ant-1.9.9
export PATH=$PATH:$ANT_HOME/bin
#生效
source /etc/profile
- 查看 ant 是否安装成功
2.3安装 glibc-headers 和 g++
powershell
yum install glibc-headers
powershell
yum install gcc-c++
2.4安装 make 和 cmake
powershell
yum install make
powershell
yum install cmake
2.5安装 protobuf
-
下载地址:链接:https://pan.baidu.com/s/1nHvCXa1xd2jvp3XIEjeH5g?pwd=6666 提取码:6666
-
上传到/root/soft
-
解压到/opt/moudel
powershelltar -zxvf protobuf-2.5.0.tar.gz -C /opt/module/
-
配置环境变量
powershellvim /etc/profile #添加以下内容 #LD_LIBRARY_PATH export LD_LIBRARY_PATH=/opt/module/protobuf-2.5.0 export PATH=$PATH:$LD_LIBRARY_PATH #生效 source /etc/profile
-
进入到解压后 protobuf 主目录,/opt/module/protobuf-2.5.0,然后相继执行命令
powershellcd /opt/module/protobuf-2.5.0 ./configure make make check make install ldconfig
-
查看安装结果
2.6安装 openssl 库
powershell
yum install openssl-devel
2.7安装 ncurses-devel 库
powershell
yum install ncurses-devel
3编译源码
3.1解压源码到 /opt/ 目录
源码下载地址:https://archive.apache.org/dist/hadoop/common/hadoop-2.7.7/
powershell
tar -zxvf hadoop-2.7.7-src.tar.gz -C /opt/
3.2 进入到 hadoop 源码主目录 /opt/hadoop-2.7.7-src,通过 maven 执行编译命令
powershell
cd /opt/hadoop-2.7.7-src
mvn package -Pdist,native -DskipTests -Dtar
等待时间 2 小时左右。