一:准备工作
1:jdk1.8版本
2:maven3.5.0版本
3:hadoop2.7.4或者hadoop2.8.1
4:protobuf2.5.0
5:cmake
6:openssl 跟 snappy
二:搭建编译环境
1:Mac上安装jdk1.8(傻瓜式操作,不懂得可以百度)
2:配置java环境变量
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH
3:解压maven包
4:配置maven环境变量
export MAVEN_HOME=/Users/shihaolin/opt/sourcecode/apache-maven-3.5.0
export PATH=$MAVEN_HOME/bin:$PATH
5:安装protobuf2.5.0(建议百度或者谷歌查一下,安装完成后终端输入protoc --version
出现这个就安装成功了)
6:安装cmake
6.1:mac上可以采取brew install cmake的方式直接下载
6.2:如果新电脑没有brew这个命令就在终端输入:ruby -e "$(curl --insecure -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
安装成功后可以执行brew install cmake 下载cmake(如果不会的可以百度hombrew安装)
7:安装openssl跟snappy
7.1:brew install openssl 安装成功后再brew install snappy
8:终端找到hadoop家目录下面是我的例子
然后执行
mvn clean package -Pdist,native -DskipTests -Dtar
如果最后出现SUCCESS就表明成功。
三:编译错误解决
1:在安装cmake后编译出现下面错误
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.7:run (make) on project hadoop-pipes: An Ant BuildException has occured: exec returned: 1[ERROR] around Ant part ...<exec failοnerrοr="true" dir="/Users/shihaolin/opt/software/hadoop-2.7.4-src/hadoop-tools/hadoop-pipes/target/native" executable="cmake">... @ 5:140 in /Users/shihaolin/opt/software/hadoop-2.7.4-src/hadoop-tools/hadoop-pipes/target/antrun/build-main.xml
这个错误我当时花费了很长时间才解决,下面是解决方式
1:终端执行
cmake /Users/shihaolin/opt/software/hadoop-2.7.4-src/hadoop-tools/hadoop-pipes/src/ -DJVM_ARCH_DATA_MODEL=64
执行成功后
2:打开配置Java环境变量的地方
3:添加下面两行(具体根据自己电脑上的openssl安装版本还有文件地址配置)
export OPENSSL_ROOT_DIR=/usr/local/Cellar/openssl/1.0.2l
export OPENSSL_INCLUDE_DIR=/usr/local/Cellar/openssl/1.0.2l/include
4:记住修改环境变量后一定要执行立即生效命令,然后再执行
cmake /Users/shihaolin/opt/software/hadoop-2.7.4-src/hadoop-tools/hadoop-pipes/src/ -DJVM_ARCH_DATA_MODEL=6
这个如果执行成功后再执行
mvn clean package -Pdist,native -DskipTests -Dtar
5:坐等编译成功
6:以上是我在Mac系统上编译hadoop2.7.4的方法步骤以及错误解决,当然编译过程中还有一些其他的小问题我就不一一列举出来了,我举的例子是我觉得最坑的一个。