Mac环境下Hadoop2.7.3源码编译

 

本机环境

系统版本: macOS Sierra 10.12.2
JDK版本: java version "1.8.0_121"
Hadoop源码: Hadoop-2.7.3

1. 使用系统和软件

操作系统:CentOS Linux release 7.4.1708 (Core)   64位
使用软件如下:
jdk1.8.0_112.tar.gz
hadoop-2.7.6-src.tar.gz 
apache-ant-1.9.11-bin.tar.gz
apache-maven-3.5.3-bin.tar.gz
findbugs-3.0.1.tar.gz
protobuf-2.5.0.tar.gz

 

一,编译前所需软件

2. 必要的包安装

[root@mini05 ~]# yum install -y cmake 
[root@mini05 ~]# yum install -y openssl-devel 
[root@mini05 ~]# yum install -y ncurses-devel 

  

1,Homebrew

Homebrew是Mac OSX上的软件包管理工具,能在Mac中方便的安装软件或者卸载软件.

  • 安装:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  • 常见使用命令
brew更新: brew update
软件安装:  brew install xxx
软件卸载:  brew uninstall xxx
软件查找:  brew search xxx
已安装软件列表:  brew list
打开官网brew:  brew home
显示软件信息:  brew info

更详细的brew介绍详见brew官网

3. 安装Jdk【java8】

2,CMake的安装

CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。

安装CMake

brew install cmake

3.1.  软件安装

[root@mini05 software]# pwd
/app/software
[root@mini05 software]# tar xf jdk1.8.0_112.tar.gz 
[root@mini05 software]# ll
total 201392
drwxr-xr-x 8   10  143      4096 Dec 20 13:27 jdk1.8.0_112
-rw-r--r-- 1 root root 189815615 Mar 12 16:47 jdk1.8.0_112.tar.gz
[root@mini05 software]# mv jdk1.8.0_112/ /app/
[root@mini05 software]# cd /app/
[root@mini05 app]# ln -s jdk1.8.0_112/ jdk
[root@mini05 app]# ll
total 8
lrwxrwxrwx  1 root root    13 May 16 23:19 jdk -> jdk1.8.0_112/
drwxr-xr-x  8   10   143 4096 Dec 20 13:27 jdk1.8.0_112

  

3,Maven的安装

Maven主要用于程序构建,并且还提供项目管理的功能

brew install maven

3.2.  环境变量

[root@mini05 ~]$ pwd
/app
[root@mini05 ~]$ ll -d jdk*  # 可以根据实际情况选择jdk版本,其中jdk1.8 可以兼容 jdk1.7   
lrwxrwxrwx 1 yun yun   11 Mar 15 14:58 jdk -> jdk1.8.0_112
drwxr-xr-x 8 yun yun 4096 Dec 20 13:27 jdk1.8.0_112
[root@mini05 profile.d]$ pwd
/etc/profile.d
[root@mini05 profile.d]$ cat jdk.sh # java环境变量   
export JAVA_HOME=/app/jdk
export JRE_HOME=/app/jdk/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH

[root@mini05 profile.d]# source /etc/profile
[root@mini05 profile.d]$ java -version  
java version "1.8.0_112"
Java(TM) SE Runtime Environment (build 1.8.0_112-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.112-b15, mixed mode)

  

4,protoc的安装

2)设置编译目录

./configure

3)编译整个包

make

4)安装protoc

make install

5)配置protoc的环境变量

vim  ~/.bash_profile
添加
export PROTOC_HOME=/Users/zhaolei/protobuf
export PATH=$PROTOC_HOME/bin:$PATH

最详细的protoc安装见protoc源码根目录的INSTALL.txt文件

4. 安装maven

二,编译

mvn package -Pdist,native -DskipTests -Dtar
  • 初次编译时间可能会比较长一些,因为需要下载一些依赖包
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:04 h
[INFO] Finished at: 2017-03-04T12:12:38+08:00
[INFO] Final Memory: 244M/1613M
[INFO] ------------------------------------------------------------------------
  • 再次编译的话时间就会缩短很多,因为依赖包已经下载完毕了
[INFO] -------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] -------------------------------------------------------------------
[INFO] Total time: 10:47 min
[INFO] Finished at: 2017-03-13T22:12:47+08:00
[INFO] Final Memory: 237M/1614M
[INFO] --------------------------------------------------------------------

4.1.  软件安装

[root@mini05 software]# pwd
/app/software 
[root@mini05 software]# tar xf apache-maven-3.5.3-bin.tar.gz 
[root@mini05 software]# mv apache-maven-3.5.3 /app/ 
[root@mini05 software]# cd /app/
[root@mini05 app]# ln -s apache-maven-3.5.3 maven
[root@mini05 app]# ll
total 0
drwxr-xr-x 6 root root  99 Jun  8 10:18 apache-maven-3.5.3
lrwxrwxrwx 1 yun  yun   13 Jun  7 22:49 jdk -> jdk1.8.0_112/
drwxr-xr-x 8 yun  yun  255 Sep 23  2016 jdk1.8.0_112
lrwxrwxrwx 1 root root  18 Jun  8 10:19 maven -> apache-maven-3.5.3
drwxrwxr-x 2 yun  yun  222 Jun  8 10:18 software

  

三,编译后的使用

源码编译后我们使用编译后的jar来运行Hadoop
例如,如果我们修改了hadoop-hdfs-project工程的代码的话
Hadoop-2.7.3-src/hadoop-hdfs-project/hadoop-hdfs/target下找到文件hadoop-hdfs-2.7.3.jar
这就是我们刚生成的jar包,我们将hadoop程序中的hadoop-hdfs-2.7.3.jar替换成该文件(在目录hadoop-2.7.3/share/hadoop/hdfs下)
接下来重新启动hadoop即可

4.2.  环境变量

[root@mini05 profile.d]# pwd
/etc/profile.d
[root@mini05 profile.d]# cat maven.sh 
export MAVEN_HOME=/app/maven/
export PATH=$MAVEN_HOME/bin:$PATH

[root@mini05 profile.d]# source /etc/profile 
[root@mini05 profile.d]# mvn -v  
Apache Maven 3.5.3 (3383c37e1f9e9b3bc3df5050c29c8aff9f295297; 2018-02-25T03:49:05+08:00)
Maven home: /app/maven
Java version: 1.8.0_112, vendor: Oracle Corporation
Java home: /app/jdk1.8.0_112/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-693.el7.x86_64", arch: "amd64", family: "unix"

  

5. 安装ant

5.1.  软件安装

[root@mini05 software]# pwd
/app/software
[root@mini05 software]# tar xf apache-ant-1.9.11-bin.tar.gz  
[root@mini05 software]# mv apache-ant-1.9.11 /app/ 
[root@mini05 app]# ln -s apache-ant-1.9.11 ant  
[root@mini05 app]# ll
total 0
lrwxrwxrwx 1 root root  17 Jun  8 10:38 ant -> apache-ant-1.9.11
drwxr-xr-x 6 root root 235 Mar 24 01:08 apache-ant-1.9.11
drwxr-xr-x 6 root root  99 Jun  8 10:18 apache-maven-3.5.3
lrwxrwxrwx 1 yun  yun   13 Jun  7 22:49 jdk -> jdk1.8.0_112/
drwxr-xr-x 8 yun  yun  255 Sep 23  2016 jdk1.8.0_112
lrwxrwxrwx 1 root root  18 Jun  8 10:19 maven -> apache-maven-3.5.3
drwxrwxr-x 2 yun  yun  222 Jun  8 10:18 software

  

本文由金沙官网线上发布于操作系统,转载请注明出处:Mac环境下Hadoop2.7.3源码编译

您可能还会对下面的文章感兴趣: